This is the mail archive of the cluster-cvs@sourceware.org mailing list for the cluster.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]