File lxdm-0.4.0-fix-null-pointer-dereference.patch of Package lxdm

diff -urNp lxdm-0.4.0.orig/src/config.c lxdm-0.4.0/src/config.c
--- lxdm-0.4.0.orig/src/config.c	2011-07-29 20:56:35.000000000 +0200
+++ lxdm-0.4.0/src/config.c	2011-07-29 20:57:45.000000000 +0200
@@ -127,24 +127,19 @@ static gboolean image_file_valid(const c
 static void update_face_image(GtkWidget *w)
 {
 	GdkPixbuf *pixbuf;
-	char *path;
-	path=g_build_filename(user->pw_dir,".face",NULL);
-	if(access(path,R_OK))
-	{
-		g_free(path);
-		if(ui_nobody)
-			pixbuf=gdk_pixbuf_new_from_file_at_scale(ui_nobody,48,48,FALSE,NULL);
-		if(!pixbuf)
-			pixbuf=gtk_icon_theme_load_icon(gtk_icon_theme_get_default(),
+	char *path=g_build_filename(user->pw_dir,".face",NULL);
+	pixbuf=gdk_pixbuf_new_from_file_at_scale(path,48,48,FALSE,NULL);
+	g_free(path);
+	if(!pixbuf && ui_nobody)
+		pixbuf=gdk_pixbuf_new_from_file_at_scale(ui_nobody,48,48,FALSE,NULL);
+	if(!pixbuf)
+		pixbuf=gtk_icon_theme_load_icon(gtk_icon_theme_get_default(),
 						"avatar-default", 48,GTK_ICON_LOOKUP_FORCE_SIZE,NULL);
-	}
-	else
+	if(pixbuf)
 	{
-		pixbuf=gdk_pixbuf_new_from_file_at_scale(path,48,48,FALSE,NULL);
-		g_free(path);
+		gtk_image_set_from_pixbuf(GTK_IMAGE(w),pixbuf);
+		g_object_unref(pixbuf);
 	}
-	gtk_image_set_from_pixbuf(GTK_IMAGE(w),pixbuf);
-	g_object_unref(pixbuf);
 }
 
 static void set_face_file(const char *filename)
openSUSE Build Service is sponsored by