X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tools%2Fdbus-launch.c;h=bbaac2c3a8907db15db3fb093cb29182879bbc9a;hb=2460ddfdb2c1980226593e1af42117b38d5be7dc;hp=912afba8cf4c311bc7ce860d6c744b329769f640;hpb=37019e9d271390fa8c62c1aae62d30bb9068adaa;p=platform%2Fupstream%2Fdbus.git diff --git a/tools/dbus-launch.c b/tools/dbus-launch.c index 912afba..bbaac2c 100644 --- a/tools/dbus-launch.c +++ b/tools/dbus-launch.c @@ -21,6 +21,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ + +#include #include "dbus-launch.h" #include #include @@ -363,9 +365,9 @@ print_variables (const char *bus_address, pid_t bus_pid, long bus_wid, { if (binary_syntax) { - write (1, bus_address, strlen (bus_address) + 1); - write (1, &bus_pid, sizeof bus_pid); - write (1, &bus_wid, sizeof bus_wid); + do_write (1, bus_address, strlen (bus_address) + 1); + do_write (1, &bus_pid, sizeof bus_pid); + do_write (1, &bus_wid, sizeof bus_wid); return; } else if (c_shell_syntax) @@ -405,6 +407,7 @@ signal_handler (int sig) #ifdef SIGHUP case SIGHUP: #endif + case SIGINT: case SIGTERM: got_sighup = TRUE; break; @@ -429,6 +432,7 @@ kill_bus_when_session_ends (void) act.sa_flags = 0; sigaction (SIGHUP, &act, NULL); sigaction (SIGTERM, &act, NULL); + sigaction (SIGINT, &act, NULL); #ifdef DBUS_BUILD_X11 x11_init(); @@ -686,10 +690,11 @@ pass_info (const char *runprog, const char *bus_address, pid_t bus_pid, int binary_syntax, int argc, char **argv, int remaining_args) { + char *envvar = NULL; + char **args = NULL; + if (runprog) { - char *envvar; - char **args; int i; envvar = malloc (strlen ("DBUS_SESSION_BUS_ADDRESS=") + @@ -733,6 +738,12 @@ pass_info (const char *runprog, const char *bus_address, pid_t bus_pid, close (2); exit (0); oom: + if (envvar) + free (envvar); + + if (args) + free (args); + fprintf (stderr, "Out of memory!"); exit (1); } @@ -906,7 +917,11 @@ main (int argc, char **argv) fprintf (stderr, "Autolaunch requested, but X11 support not compiled in.\n" "Cannot continue.\n"); exit (1); -#else +#else /* DBUS_BUILD_X11 */ +#ifndef DBUS_ENABLE_X11_AUTOLAUNCH + fprintf (stderr, "X11 autolaunch support disabled at compile time.\n"); + exit (1); +#else /* DBUS_ENABLE_X11_AUTOLAUNCH */ char *address; pid_t pid; long wid; @@ -943,11 +958,12 @@ main (int argc, char **argv) bourne_shell_syntax, binary_syntax, argc, argv, remaining_args); exit (0); } +#endif /* DBUS_ENABLE_X11_AUTOLAUNCH */ } - else if (read_machine_uuid_if_needed()) + else if (read_machine_uuid_if_needed()) { x11_init(); -#endif +#endif /* DBUS_BUILD_X11 */ } @@ -1166,7 +1182,7 @@ main (int argc, char **argv) close (bus_pid_to_launcher_pipe[READ_END]); -#ifdef DBUS_BUILD_X11 +#ifdef DBUS_ENABLE_X11_AUTOLAUNCH if (xdisplay != NULL) { verbose("Saving x11 address\n");