On Wed, May 02, 2012 at 10:51:37PM +0800, Osier Yang wrote: > Error: RESOURCE_LEAK: > /builddir/build/BUILD/libvirt-0.9.10/src/nodeinfo.c:629: alloc_fn: Calling allocation function "fopen". > /builddir/build/BUILD/libvirt-0.9.10/src/nodeinfo.c:629: var_assign: Assigning: "cpuinfo" = storage returned from "fopen("/proc/cpuinfo", "r")". > /builddir/build/BUILD/libvirt-0.9.10/src/nodeinfo.c:638: leaked_storage: Variable "cpuinfo" going out of scope leaks the storage it points to. > --- > src/nodeinfo.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/src/nodeinfo.c b/src/nodeinfo.c > index e842474..4072da2 100644 > --- a/src/nodeinfo.c > +++ b/src/nodeinfo.c > @@ -636,6 +636,7 @@ int nodeGetInfo(virConnectPtr conn ATTRIBUTE_UNUSED, virNodeInfoPtr nodeinfo) { > } > > if (virAsprintf(&sysfs_cpuinfo, CPU_SYS_PATH) < 0) { > + VIR_FORCE_FCLOSE(cpuinfo); > virReportOOMError(); > return -1; > } This method would really benefit from being changed to use the 'goto cleanup' style rather than duplicating cleanup in the many 'return' statements. 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