From: Thiago Macieira Date: Thu, 26 Oct 2006 17:34:49 +0000 (+0000) Subject: * tools/dbus-launch-x11.c (get_session_file, init_x_atoms): X-Git-Tag: dbus-0.95~19 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=01b91ba121034f94c1e4d4511b9e61f622dde48c;p=thirdparty%2Fdbus.git * tools/dbus-launch-x11.c (get_session_file, init_x_atoms): check if get_machine_uuid() returns NULL before proceeding any further: we can't init the X atoms or create a session file name if there is no machine ID. This solves a crash reported by some users if --exit-with-session was used without --autolaunch= --- diff --git a/ChangeLog b/ChangeLog index 2722f3296..3a26dc711 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2006-10-26 Thiago Macieira + + * tools/dbus-launch-x11.c (get_session_file, init_x_atoms): + check if get_machine_uuid() returns NULL before proceeding any + further: we can't init the X atoms or create a session file + name if there is no machine ID. + This solves a crash reported by some users if + --exit-with-session was used without --autolaunch= + 2006-10-26 John (J5) Palmieri * tools/dbus-launch.c (main): run the dbus-daemon in the builddir diff --git a/tools/dbus-launch-x11.c b/tools/dbus-launch-x11.c index f0588ad82..b7d1c2085 100644 --- a/tools/dbus-launch-x11.c +++ b/tools/dbus-launch-x11.c @@ -98,6 +98,10 @@ get_session_file (void) char *result; char *p; + machine = get_machine_uuid (); + if (machine == NULL) + return NULL; + display = xstrdup (getenv ("DISPLAY")); if (display == NULL) { @@ -143,8 +147,6 @@ get_session_file (void) *p = '_'; } - machine = get_machine_uuid (); - home = get_homedir (); result = malloc (strlen (home) + strlen (prefix) + strlen (machine) + @@ -237,6 +239,10 @@ init_x_atoms (Display *display) if (init) return TRUE; + machine = get_machine_uuid (); + if (machine == NULL) + return FALSE; + user = getpwuid (getuid ()); if (user == NULL) { @@ -245,8 +251,6 @@ init_x_atoms (Display *display) } user_name = xstrdup(user->pw_name); - machine = get_machine_uuid (); - atom_name = malloc (strlen (machine) + strlen (user_name) + 2 + MAX (strlen (selection_prefix), MAX (strlen (address_prefix),