From f1539f74b6785097a824066e450542eee112b01e Mon Sep 17 00:00:00 2001 From: Chengwei Yang Date: Thu, 27 Jun 2013 09:13:57 +0800 Subject: [PATCH v3] dbus-launch: unconditionally use SIGHUP and free memory on OOM In a previous patch, it check SIGHUP for windows, however, in fact there is dbus-launch-win.c supposed to be used on windows. So just use SIGHUP unconditionally. Also free memory on OOM, although this doesn't make much sense since this is a oneshort program, rather than a daemon. Signed-off-by: Chengwei Yang --- tools/dbus-launch.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/dbus-launch.c b/tools/dbus-launch.c index 80e1419..0234f9d 100644 --- a/tools/dbus-launch.c +++ b/tools/dbus-launch.c @@ -451,9 +451,7 @@ signal_handler (int sig) { switch (sig) { -#ifdef SIGHUP case SIGHUP: -#endif case SIGINT: case SIGTERM: got_sighup = TRUE; @@ -769,7 +767,11 @@ pass_info (const char *runprog, const char *bus_address, pid_t bus_pid, size_t len = strlen (argv[remaining_args+i-1])+1; args[i] = malloc (len); if (!args[i]) - goto oom; + { + while (i > 1) + free(args[--i]); + goto oom; + } strncpy (args[i], argv[remaining_args+i-1], len); } args[i] = NULL; -- 1.7.9.5