From 8d6a1b2c887732e9074683ead1f29249cd77a40d Mon Sep 17 00:00:00 2001 From: Matthias Bolte Date: Fri, 6 Nov 2009 01:53:24 +0100 Subject: [PATCH] phyp: Break potential infinite loops --- src/phyp/phyp_driver.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) 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; } }