Blob Blame History Raw
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  <jmccann@redhat.com>
 
+	* 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  <jmccann@redhat.com>
+
 	* configure.ac: Post release version bump
 
 ==== 2.21.9 ====