diff options
author | Thiago Macieira <thiago@kde.org> | 2006-10-26 17:34:49 +0000 |
---|---|---|
committer | Thiago Macieira <thiago@kde.org> | 2006-10-26 17:34:49 +0000 |
commit | 01b91ba121034f94c1e4d4511b9e61f622dde48c (patch) | |
tree | f754ee026ce574ba3df2cf47db3215655a199d4e | |
parent | a107da84891f941d591bcaa99641f4058f089c7d (diff) |
* 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=<machine-id>
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | tools/dbus-launch-x11.c | 12 |
2 files changed, 17 insertions, 4 deletions
@@ -1,3 +1,12 @@ +2006-10-26 Thiago Macieira <thiago@kde.org> + + * 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=<machine-id> + 2006-10-26 John (J5) Palmieri <johnp@redhat.com> * 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 f0588ad8..b7d1c208 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), |