On Thu, Jul 11, 2013 at 08:34:03AM -0400, John Ferlan wrote: > Recent changes uncovered a pair of NEGATIVE_RETURNS when processing the > 'nnames' in 'vshDomainListCollect' in the for loop due to possible -1 value. > --- > tools/virsh-domain-monitor.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c > index 7af765e..bd853ba 100644 > --- a/tools/virsh-domain-monitor.c > +++ b/tools/virsh-domain-monitor.c > @@ -1399,6 +1399,7 @@ vshDomainListCollect(vshControl *ctl, unsigned int flags) > vshDomainListPtr list = vshMalloc(ctl, sizeof(*list)); > size_t i; > int ret; > + int rc; > int *ids = NULL; > int nids = 0; > char **names = NULL; > @@ -1467,16 +1468,17 @@ fallback: > > if (!VSH_MATCH(VIR_CONNECT_LIST_DOMAINS_FILTERS_ACTIVE) || > VSH_MATCH(VIR_CONNECT_LIST_DOMAINS_INACTIVE)) { > - if ((nnames = virConnectNumOfDefinedDomains(ctl->conn)) < 0) { > + if ((rc = virConnectNumOfDefinedDomains(ctl->conn)) < 0) { > vshError(ctl, "%s", _("Failed to list inactive domains")); > goto cleanup; > } > > - if (nnames) { > + if (rc) { > + nnames = rc; > names = vshMalloc(ctl, sizeof(char *) * nnames); > > - if ((nnames = virConnectListDefinedDomains(ctl->conn, names, > - nnames)) < 0) { > + if ((rc = virConnectListDefinedDomains(ctl->conn, names, > + nnames)) < 0) { > vshError(ctl, "%s", _("Failed to list inactive domains")); > goto cleanup; > } I think is is nicer to change the code in the 'cleanup' label to do cleanup: for (i = 0; nnames != -1 && i < nnames; i++) VIR_FREE(names[i]); Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list