diff options
author | ftrvxmtrx <ftrvxmtrx@gmail.com> | 2016-02-12 23:52:50 +0200 |
---|---|---|
committer | ftrvxmtrx <ftrvxmtrx@gmail.com> | 2016-02-12 23:52:50 +0200 |
commit | 668318b2e69edd4aa71a21ff31731fa81dbe7095 (patch) | |
tree | 7519a6f10a9b7763f56d08114e2f0b99f73c158e | |
parent | eeb96dca21dfc28afa69f3d00fa6f2cdb7e9b1b8 (diff) | |
download | plan9front-668318b2e69edd4aa71a21ff31731fa81dbe7095.tar.xz |
ip/chandial: fail with Ebadarg instead of printing memory contents
-rw-r--r-- | sys/src/9/ip/chandial.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/src/9/ip/chandial.c b/sys/src/9/ip/chandial.c index 38139ceec..58fc007bc 100644 --- a/sys/src/9/ip/chandial.c +++ b/sys/src/9/ip/chandial.c @@ -40,7 +40,7 @@ chandial(char *dest, char *local, char *dir, Chan **ctlp) ds.ctlp = ctlp; _dial_string_parse(dest, &ds); - if(ds.netdir == 0) + if(ds.netdir == nil) ds.netdir = "/net"; /* no connection server, don't translate */ @@ -109,11 +109,13 @@ _dial_string_parse(char *str, DS *ds) ds->rem = ds->buf; } else { if(*ds->buf != '/' && *ds->buf != '#'){ - ds->netdir = 0; + ds->netdir = nil; ds->proto = ds->buf; } else { - for(p2 = p; *p2 != '/'; p2--) + for(p2 = p; *p2 != '/' && p2 != ds->buf; p2--) ; + if(p2 == ds->buf) + error(Ebadarg); *p2++ = 0; ds->netdir = ds->buf; ds->proto = p2; |