ip/chandial: fail with Ebadarg instead of printing memory contents
This commit is contained in:
parent
eeb96dca21
commit
668318b2e6
1 changed files with 5 additions and 3 deletions
|
@ -40,7 +40,7 @@ chandial(char *dest, char *local, char *dir, Chan **ctlp)
|
||||||
ds.ctlp = ctlp;
|
ds.ctlp = ctlp;
|
||||||
|
|
||||||
_dial_string_parse(dest, &ds);
|
_dial_string_parse(dest, &ds);
|
||||||
if(ds.netdir == 0)
|
if(ds.netdir == nil)
|
||||||
ds.netdir = "/net";
|
ds.netdir = "/net";
|
||||||
|
|
||||||
/* no connection server, don't translate */
|
/* no connection server, don't translate */
|
||||||
|
@ -109,11 +109,13 @@ _dial_string_parse(char *str, DS *ds)
|
||||||
ds->rem = ds->buf;
|
ds->rem = ds->buf;
|
||||||
} else {
|
} else {
|
||||||
if(*ds->buf != '/' && *ds->buf != '#'){
|
if(*ds->buf != '/' && *ds->buf != '#'){
|
||||||
ds->netdir = 0;
|
ds->netdir = nil;
|
||||||
ds->proto = ds->buf;
|
ds->proto = ds->buf;
|
||||||
} else {
|
} else {
|
||||||
for(p2 = p; *p2 != '/'; p2--)
|
for(p2 = p; *p2 != '/' && p2 != ds->buf; p2--)
|
||||||
;
|
;
|
||||||
|
if(p2 == ds->buf)
|
||||||
|
error(Ebadarg);
|
||||||
*p2++ = 0;
|
*p2++ = 0;
|
||||||
ds->netdir = ds->buf;
|
ds->netdir = ds->buf;
|
||||||
ds->proto = p2;
|
ds->proto = p2;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue