From: Matthias Bolte Date: Fri, 6 Nov 2009 00:53:24 +0000 (+0100) Subject: phyp: Break potential infinite loops X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=8d6a1b2c887732e9074683ead1f29249cd77a40d;p=libvirt.git phyp: Break potential infinite loops --- diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c index 5379cd3313..b94d0faa06 100644 --- a/src/phyp/phyp_driver.c +++ b/src/phyp/phyp_driver.c @@ -1040,9 +1040,13 @@ phypListDomainsGeneric(virConnectPtr conn, int *ids, int nids, goto err; else { while (got < nids) { - if (ret[i] == '\n') { - if (virStrToLong_i(id_c, &char_ptr, 10, &ids[got]) == -1) - return 0; + if (ret[i] == '\0') + break; + else if (ret[i] == '\n') { + if (virStrToLong_i(id_c, &char_ptr, 10, &ids[got]) == -1) { + VIR_ERROR("Cannot parse number from '%s'", id_c); + goto err; + } memset(id_c, 0, 10); j = 0; got++; @@ -1112,7 +1116,8 @@ phypListDefinedDomains(virConnectPtr conn, char **const names, int nnames) } char_ptr2++; domains = char_ptr2; - } + } else + break; } }