ref: 16d2708344768e843e892004f7265019c8190c15
parent: 0e8db6d34eea3f58ea6ca3bfedcb2e004c4d74dd
author: ftrvxmtrx <ftrvxmtrx@gmail.com>
date: Fri Feb 12 18:52:50 EST 2016
ip/chandial: fail with Ebadarg instead of printing memory contents
--- a/sys/src/9/ip/chandial.c
+++ b/sys/src/9/ip/chandial.c
@@ -40,7 +40,7 @@
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 @@
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;
--
⑨