diff --git a/gdm-null-user.patch b/gdm-null-user.patch new file mode 100644 index 0000000..370fdbe --- /dev/null +++ b/gdm-null-user.patch @@ -0,0 +1,67 @@ +Index: gui/user-switch-applet/applet.c +=================================================================== +--- gui/user-switch-applet/applet.c (revision 5994) ++++ gui/user-switch-applet/applet.c (revision 5995) +@@ -1082,14 +1082,23 @@ fill_applet (PanelApplet *applet) + gtk_widget_show (hbox); + + { +- GdmUser *user; ++ GdmUser *user; ++ const char *name; + + user = gdm_user_manager_get_user_by_uid (adata->manager, getuid ()); +- adata->imglabel = gtk_label_new (gdm_user_get_real_name (user)); +- adata->user_notify_id = g_signal_connect (user, +- "notify::display-name", +- G_CALLBACK (user_notify_display_name_cb), +- adata->imglabel); ++ if (user != NULL) { ++ name = gdm_user_get_real_name (user); ++ } else { ++ name = _("Unknown"); ++ } ++ ++ adata->imglabel = gtk_label_new (name); ++ if (user != NULL) { ++ adata->user_notify_id = g_signal_connect (user, ++ "notify::display-name", ++ G_CALLBACK (user_notify_display_name_cb), ++ adata->imglabel); ++ } + gtk_box_pack_start (GTK_BOX (hbox), adata->imglabel, TRUE, TRUE, 0); + gtk_widget_show (adata->imglabel); + } +Index: gui/simple-greeter/gdm-user-manager.c +=================================================================== +--- gui/simple-greeter/gdm-user-manager.c (revision 5994) ++++ gui/simple-greeter/gdm-user-manager.c (revision 5995) +@@ -1115,6 +1115,11 @@ process_ck_history_line (GdmUserManager + } + + user = gdm_user_manager_get_user (manager, username); ++ if (user == NULL) { ++ g_debug ("GdmUserManager: unable to lookup user '%s'", username); ++ return; ++ } ++ + g_object_set (user, "login-frequency", frequency, NULL); + g_signal_emit (manager, signals [USER_LOGIN_FREQUENCY_CHANGED], 0, user); + } +Index: ChangeLog +=================================================================== +--- ChangeLog (revision 5994) ++++ ChangeLog (revision 5995) +@@ -1,5 +1,12 @@ + 2008-03-10 William Jon McCann + ++ * gui/simple-greeter/gdm-user-manager.c: (process_ck_history_line): ++ * gui/user-switch-applet/applet.c: (fill_applet): ++ Handle case where we can't lookup a GdmUser (for whatever reason). ++ Could be gone, excluded, etc... ++ ++2008-03-10 William Jon McCann ++ + * configure.ac: Post release version bump + + ==== 2.21.9 ==== diff --git a/gdm.spec b/gdm.spec index 8d0536a..0d7a0d0 100644 --- a/gdm.spec +++ b/gdm.spec @@ -16,7 +16,7 @@ Summary: The GNOME Display Manager Name: gdm Version: 2.21.9 -Release: 1%{?dist} +Release: 2%{?dist} Epoch: 1 License: GPLv2+ Group: User Interface/X @@ -77,6 +77,7 @@ BuildRequires: gnome-panel-devel Requires: audit-libs >= %{libauditver} +Patch1: gdm-null-user.patch Patch99: gdm-2.21.8-fedora-logo.patch %package user-switch-applet @@ -97,6 +98,7 @@ multiple simulanteous logged in users. %prep %setup -q +%patch1 -p0 -b .null-user %patch99 -p1 -b .fedora-logo %build @@ -290,6 +292,9 @@ fi %{_datadir}/gnome-2.0/ui/GNOME_FastUserSwitchApplet.xml %changelog +* Mon Mar 10 2008 Jon McCann - 1:2.21.9-2 +- Fix case where we can't lookup a user. + * Mon Mar 10 2008 Jon McCann - 1:2.21.9-1 - Update to 2.21.9