From: Steven Hand Date: Thu, 24 Aug 2006 13:07:01 +0000 (+0100) Subject: Ensure get_dom_domid() terminates even when /local/domain//name is X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15681^2~14^2~3 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=edd2b90d12b9a0a0a7af9a40620eb25683220926;p=xen.git Ensure get_dom_domid() terminates even when /local/domain//name is not present. Signed-off-by: Steven Hand --- diff --git a/tools/blktap/lib/xs_api.c b/tools/blktap/lib/xs_api.c index 44abcf2080..8dd491a800 100644 --- a/tools/blktap/lib/xs_api.c +++ b/tools/blktap/lib/xs_api.c @@ -180,8 +180,7 @@ char *get_dom_domid(struct xs_handle *h, const char *name) e = xs_directory(h, xth, "/local/domain", &num); - i = 0; - while (i < num) { + for (i = 0; (i < num) && (domid == NULL); i++) { asprintf(&path, "/local/domain/%s/name", e[i]); val = xs_read(h, xth, path, &len); free(path); @@ -192,12 +191,9 @@ char *get_dom_domid(struct xs_handle *h, const char *name) /* match! */ asprintf(&path, "/local/domain/%s/domid", e[i]); domid = xs_read(h, xth, path, &len); - free(val); free(path); - break; } free(val); - i++; } xs_transaction_end(h, xth, 0);