On 06/25/2010 03:22 PM, Chris Lalancette wrote: > There was one major, and a few minor bugs having to do with > the reference counting of node devices in daemon/remote.c > The major bug was that remoteDispatchNodeDeviceListCaps() > was completely failing to unreference node devices; this > would lead to many open file descriptors, which would eventually > fail. > > The minor bugs were along the same lines, but were in rarely > used error paths. Still, they should be corrected. > > Signed-off-by: Chris Lalancette <[email protected]> > --- > daemon/remote.c | 7 +++++++ > 1 files changed, 7 insertions(+), 0 deletions(-) > > diff --git a/daemon/remote.c b/daemon/remote.c > index 91faa9a..ec5f85b 100644 > --- a/daemon/remote.c > +++ b/daemon/remote.c > @@ -5012,11 +5012,13 @@ remoteDispatchNodeDeviceGetParent (struct > qemud_server *server ATTRIBUTE_UNUSED, > /* remoteDispatchClientRequest will free this. */ > char **parent_p; > if (VIR_ALLOC(parent_p) < 0) { > + virNodeDeviceFree(dev); > remoteDispatchOOMError(rerr); > return -1; > }
ACK. But given the number of places where you had to duplicate this line insertion, would it be better to change all the return -1 into goto cleanup, where the cleanup: label guarantees this cleanup for all possible exit paths? -- Eric Blake [email protected] +1-801-349-2682 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
