[gnome-desktop] Don't crash if unable to set background



commit bd6fb734806f40f6b8777792eebdc06635d001ea
Author: William Jon McCann <jmccann redhat com>
Date:   Sat Jul 21 02:13:05 2012 -0400

    Don't crash if unable to set background
    
    https://bugzilla.gnome.org/show_bug.cgi?id=680354

 libgnome-desktop/gnome-bg.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/libgnome-desktop/gnome-bg.c b/libgnome-desktop/gnome-bg.c
index 95e24d6..1b4ce9e 100644
--- a/libgnome-desktop/gnome-bg.c
+++ b/libgnome-desktop/gnome-bg.c
@@ -1080,6 +1080,8 @@ gnome_bg_get_pixmap_size (GnomeBG   *bg,
  * TRUE, the surface created will be created by a temporary X server connection
  * so that if someone calls XKillClient on it, it won't affect the application
  * who created it.
+ *
+ * Returns: %NULL on error (e.g. out of X connections)
  **/
 cairo_surface_t *
 gnome_bg_create_surface (GnomeBG	    *bg,
@@ -1115,7 +1117,10 @@ gnome_bg_create_surface (GnomeBG	    *bg,
                                                              CAIRO_CONTENT_COLOR,
                                                              pm_width, pm_height);
 	}
-	
+
+	if (surface == NULL)
+		return NULL;
+
 	cr = cairo_create (surface);
 	if (!bg->filename && bg->color_type == G_DESKTOP_BACKGROUND_SHADING_SOLID) {
 		gdk_cairo_set_source_color (cr, &(bg->primary));
@@ -1553,6 +1558,7 @@ gnome_bg_set_surface_as_root (GdkScreen *screen, cairo_surface_t *surface)
 	int      screen_num;
 
 	g_return_if_fail (screen != NULL);
+	g_return_if_fail (surface != NULL);
 	g_return_if_fail (cairo_surface_get_type (surface) == CAIRO_SURFACE_TYPE_XLIB);
 
 	screen_num = gdk_screen_get_number (screen);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]