]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
dbus-launch: unconditionally use SIGHUP and free memory on OOM
authorChengwei Yang <chengwei.yang@intel.com>
Thu, 27 Jun 2013 01:13:57 +0000 (09:13 +0800)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>
Thu, 5 Sep 2013 13:01:46 +0000 (14:01 +0100)
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 <chengwei.yang@intel.com>
[fixed whitespace -smcv]
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=66068
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
tools/dbus-launch.c

index ea24f5ce5256ef8067845ed0936fef6e0b817b03..15249759470d46567c5c28159720d13a2c574c29 100644 (file)
@@ -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;