On Sun, Apr 03, 2011 at 11:21:25AM +0200, Matthias Bolte wrote: > --- > daemon/remote.c | 20 ++++++++++++++------ > 1 files changed, 14 insertions(+), 6 deletions(-) > > diff --git a/daemon/remote.c b/daemon/remote.c > index 1700c2d..dd85ef1 100644 > --- a/daemon/remote.c > +++ b/daemon/remote.c > @@ -1607,7 +1607,7 @@ remoteDispatchDomainGetSecurityLabel(struct qemud_server *server ATTRIBUTE_UNUSE > remote_domain_get_security_label_ret *ret) > { > virDomainPtr dom; > - virSecurityLabel seclabel; > + virSecurityLabelPtr seclabel; > > dom = get_nonnull_domain(conn, args->dom); > if (dom == NULL) { > @@ -1615,22 +1615,30 @@ remoteDispatchDomainGetSecurityLabel(struct qemud_server *server ATTRIBUTE_UNUSE > return -1; > } > > - memset(&seclabel, 0, sizeof seclabel); > - if (virDomainGetSecurityLabel(dom, &seclabel) == -1) { > + if (VIR_ALLOC(seclabel) < 0) { > + virDomainFree(dom); > + remoteDispatchOOMError(rerr); > + return -1; > + } > + > + if (virDomainGetSecurityLabel(dom, seclabel) == -1) { > remoteDispatchConnError(rerr, conn); > virDomainFree(dom); > + VIR_FREE(seclabel); > return -1; > } > > - ret->label.label_len = strlen(seclabel.label) + 1; > + ret->label.label_len = strlen(seclabel->label) + 1; > if (VIR_ALLOC_N(ret->label.label_val, ret->label.label_len) < 0) { > virDomainFree(dom); > + VIR_FREE(seclabel); > remoteDispatchOOMError(rerr); > return -1; > } > - strcpy(ret->label.label_val, seclabel.label); > - ret->enforcing = seclabel.enforcing; > + strcpy(ret->label.label_val, seclabel->label); > + ret->enforcing = seclabel->enforcing; > virDomainFree(dom); > + VIR_FREE(seclabel); > > return 0; > } ACK 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