summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/9/ip/chandial.c8
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;