This is the mail archive of the
cluster-cvs@sourceware.org
mailing list for the cluster.
cluster: master - notifyd: fix memory leak in environment generation
- From: "Fabio M. Di Nitto" <fabbione at fedoraproject dot org>
- To: cluster-cvs-relay at redhat dot com
- Date: Fri, 6 Mar 2009 19:25:40 +0000 (UTC)
- Subject: cluster: master - notifyd: fix memory leak in environment generation
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=b458559bae9cf9bc8451baf21cd5dfffb7e1b7ba
Commit: b458559bae9cf9bc8451baf21cd5dfffb7e1b7ba
Parent: d261c93b272d0512775055cb9040fbf191844abd
Author: Fabio M. Di Nitto <fdinitto@redhat.com>
AuthorDate: Fri Mar 6 20:19:45 2009 +0100
Committer: Fabio M. Di Nitto <fdinitto@redhat.com>
CommitterDate: Fri Mar 6 20:25:31 2009 +0100
notifyd: fix memory leak in environment generation
spotted by valgrind.
Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
---
cman/notifyd/main.c | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/cman/notifyd/main.c b/cman/notifyd/main.c
index 7722032..e864690 100644
--- a/cman/notifyd/main.c
+++ b/cman/notifyd/main.c
@@ -226,11 +226,11 @@ static void dispatch_notification(char *str, int *quorum)
if (debug)
envp[envptr++] = strdup("CMAN_NOTIFICATION_DEBUG=1");
- envp[envptr++] = NULL;
+ envp[envptr--] = NULL;
argv[argvptr++] = "cman_notify";
- argv[argvptr++] = NULL;
+ argv[argvptr--] = NULL;
switch ( (notify_pid = fork()) )
{
@@ -250,6 +250,12 @@ static void dispatch_notification(char *str, int *quorum)
break;
}
+ while(envptr >= 0) {
+ if (envp[envptr])
+ free(envp[envptr]);
+
+ envptr--;
+ }
}
static void cman_callback(cman_handle_t ch, void *private, int reason, int arg)