[libvirt] [PATCH] Fix memory leak in __virExec

Commit e0d014f2379dd made binary potentially allocated on the heap. It was freed in the parent in the error path, but not in the success path that doesn't goto the cleanup label. Found by 'make -C tests valgrind'. --- src/util/util.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/src/util/util.c b/src/util/util.c index c337aa9..37472bb 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -568,6 +568,10 @@ __virExec(const char *const*argv, } *retpid = pid; + + if (binary != argv[0]) + VIR_FREE(binary); + return 0; } -- 1.7.0.4

On 04/30/2011 05:11 AM, Matthias Bolte wrote:
Commit e0d014f2379dd made binary potentially allocated on the heap. It was freed in the parent in the error path, but not in the success path that doesn't goto the cleanup label.
Found by 'make -C tests valgrind'. --- src/util/util.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/src/util/util.c b/src/util/util.c index c337aa9..37472bb 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -568,6 +568,10 @@ __virExec(const char *const*argv, }
*retpid = pid; + + if (binary != argv[0]) + VIR_FREE(binary);
ACK. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

2011/4/30 Eric Blake <eblake@redhat.com>:
On 04/30/2011 05:11 AM, Matthias Bolte wrote:
Commit e0d014f2379dd made binary potentially allocated on the heap. It was freed in the parent in the error path, but not in the success path that doesn't goto the cleanup label.
Found by 'make -C tests valgrind'. --- src/util/util.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/src/util/util.c b/src/util/util.c index c337aa9..37472bb 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -568,6 +568,10 @@ __virExec(const char *const*argv, }
*retpid = pid; + + if (binary != argv[0]) + VIR_FREE(binary);
ACK.
Thanks, pushed. Matthias
participants (2)
-
Eric Blake
-
Matthias Bolte