[Libvir] [PATCH] Plug skipped-qemudCleanup leak.

And another: Plug skipped-qemudCleanup leak. * qemud/qemud.c (main): Call qemudCleanup also upon failure. Otherwise, an error return would skip it and induce leaks. Signed-off-by: Jim Meyering <meyering@redhat.com> --- ChangeLog | 6 ++++++ qemud/qemud.c | 3 +-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 049f515..81452ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-03-03 Jim Meyering <meyering@redhat.com> + + Plug skipped-qemudCleanup leak. + * qemud/qemud.c (main): Call qemudCleanup also upon failure. + Otherwise, an error return would skip it and induce leaks. + Mon Mar 3 07:16:35 CET 2008 Daniel Veillard <veillard@redhat.com> * include/libvirt/libvirt.h include/libvirt/libvirt.h.in: diff --git a/qemud/qemud.c b/qemud/qemud.c index 851e83e..7ccc9ee 100644 --- a/qemud/qemud.c +++ b/qemud/qemud.c @@ -2166,8 +2166,6 @@ int main(int argc, char **argv) { qemudRunLoop(server); - qemudCleanup(server); - close(sigwrite); if (godaemon) @@ -2181,6 +2179,7 @@ int main(int argc, char **argv) { unlink (pid_file); error1: + qemudCleanup(server); return ret; } -- 1.5.4.3.366.g55277

On Mon, Mar 03, 2008 at 01:34:34PM +0100, Jim Meyering wrote:
And another:
Plug skipped-qemudCleanup leak. * qemud/qemud.c (main): Call qemudCleanup also upon failure. Otherwise, an error return would skip it and induce leaks.
[...]
@@ -2166,8 +2166,6 @@ int main(int argc, char **argv) {
qemudRunLoop(server);
- qemudCleanup(server); - close(sigwrite);
if (godaemon) @@ -2181,6 +2179,7 @@ int main(int argc, char **argv) { unlink (pid_file);
error1: + qemudCleanup(server); return ret; }
Well one could argue that since return on main() is an exit, which will reclaim the memory it's not really a leak :-) but it's cleaner that way. +1 Daniel -- Red Hat Virtualization group http://redhat.com/virtualization/ Daniel Veillard | virtualization library http://libvirt.org/ veillard@redhat.com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/

Daniel Veillard <veillard@redhat.com> wrote:
On Mon, Mar 03, 2008 at 01:34:34PM +0100, Jim Meyering wrote:
And another:
Plug skipped-qemudCleanup leak. * qemud/qemud.c (main): Call qemudCleanup also upon failure. Otherwise, an error return would skip it and induce leaks.
[...]
@@ -2166,8 +2166,6 @@ int main(int argc, char **argv) {
qemudRunLoop(server);
- qemudCleanup(server); - close(sigwrite);
if (godaemon) @@ -2181,6 +2179,7 @@ int main(int argc, char **argv) { unlink (pid_file);
error1: + qemudCleanup(server); return ret; }
Well one could argue that since return on main() is an exit, which will reclaim the memory it's not really a leak :-) but it's cleaner that way.
Of course, but for the record, this change does fix some "real" leaks, aka, "definitely leaked", as reported by valgrind. Otherwise I wouldn't have bothered. There are plenty of pseudo-leaks like what you're talking about, but "fixing" them is often counter-productive.
participants (2)
-
Daniel Veillard
-
Jim Meyering