exec plugin: Fixed a possible (though very improbable) memory leak.
authorSebastian Harl <sh@tokkee.org>
Sun, 27 Jan 2008 22:26:41 +0000 (23:26 +0100)
committerFlorian Forster <octo@huhu.verplant.org>
Mon, 4 Feb 2008 16:45:11 +0000 (17:45 +0100)
In case of an error, the program_list_and_notification_t pointer has not been
freed before calling pthread_exit() from exec_notification_one().

Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/exec.c

index e7648bd..d5a8d0f 100644 (file)
@@ -581,8 +581,10 @@ static void *exec_notification_one (void *arg) /* {{{ */
   const char *severity;
 
   pid = fork_child (pl, &fd, NULL);
-  if (pid < 0)
+  if (pid < 0) {
+    sfree (arg);
     pthread_exit ((void *) 1);
+  }
 
   fh = fdopen (fd, "w");
   if (fh == NULL)
@@ -593,6 +595,7 @@ static void *exec_notification_one (void *arg) /* {{{ */
     kill (pl->pid, SIGTERM);
     pl->pid = 0;
     close (fd);
+    sfree (arg);
     pthread_exit ((void *) 1);
   }