Message ID | alpine.LNX.2.00.1211211110450.5569@linmac |
---|---|
State | New |
Headers | show |
Il 21/11/2012 08:14, malc ha scritto: > > Commit in the subject broke inet parsing (noticed by a build on a remote > system without X and only internal vnc server that by default uses > localhost:0,to=99), following was probably intended, but you're never > sure: > > diff --git a/qemu-sockets.c b/qemu-sockets.c > index cfed9c5..e7272c8 100644 > --- a/qemu-sockets.c > +++ b/qemu-sockets.c > @@ -529,13 +529,15 @@ static InetSocketAddress *inet_parse(const char > *str, Error **errp) > optstr = str + pos; > h = strstr(optstr, ",to="); > if (h) { > - if (1 != sscanf(str, "%d%n", &to, &pos) || > - (str[pos] != '\0' && str[pos] != ',')) { > + h += 4; > + if (1 != sscanf(h, "%d%n", &to, &pos) || > + (h[pos] != '\0' && h[pos] != ',')) { > error_setg(errp, "error parsing to= argument"); > goto fail; > } > addr->has_to = true; > addr->to = to; > + optstr = h + pos; > } > if (strstr(optstr, ",ipv4")) { > addr->ipv4 = addr->has_ipv4 = true; > Anthony Perard already submitted this patch, but it missed the -rc0 boat for some reason. Paolo
diff --git a/qemu-sockets.c b/qemu-sockets.c index cfed9c5..e7272c8 100644 --- a/qemu-sockets.c +++ b/qemu-sockets.c @@ -529,13 +529,15 @@ static InetSocketAddress *inet_parse(const char *str, Error **errp) optstr = str + pos; h = strstr(optstr, ",to="); if (h) { - if (1 != sscanf(str, "%d%n", &to, &pos) || - (str[pos] != '\0' && str[pos] != ',')) { + h += 4; + if (1 != sscanf(h, "%d%n", &to, &pos) || + (h[pos] != '\0' && h[pos] != ',')) { error_setg(errp, "error parsing to= argument"); goto fail; } addr->has_to = true; addr->to = to; + optstr = h + pos; } if (strstr(optstr, ",ipv4")) {