[gnumeric] Fix ssconvert crash on form controls. [#630335]



commit 051a9355262f0464c1dc379a21eca1002a882fc0
Author: Andreas J Guelzow <aguelzow pyrshep ca>
Date:   Wed Sep 22 08:11:13 2010 -0600

    Fix ssconvert crash on form controls. [#630335]
    
    2010-09-22  Andreas J. Guelzow <aguelzow pyrshep ca>
    
    	* src/sheet-object-widget.c (sheet_widget_draw_cairo): avoid dereferencing
    	  NULL pointer

 ChangeLog                 |    5 +++++
 NEWS                      |    1 +
 src/sheet-object-widget.c |    6 ++++--
 3 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 9056e8b..e589090 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-09-22  Andreas J. Guelzow <aguelzow pyrshep ca>
+
+	* src/sheet-object-widget.c (sheet_widget_draw_cairo): avoid dereferencing
+	  NULL pointer
+
 2010-09-21  Morten Welinder  <terra gnome org>
 
 	* src/wbc-gtk.c (wbc_gtk_reload_templates): Look for templates in
diff --git a/NEWS b/NEWS
index c16afb1..d3e9ca5 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,7 @@ Andreas:
 	* Allow multiple selection in manage sheet dialog.
 	* Permit ctrl-click specification of sort columns.
 	* Set ODF files to save by default as ODF files. [#629962]
+	* Fix ssconvert crash on form controls. [#630335]
 
 Jean:
 	* Export/import tick label rotation angle. [#629675]
diff --git a/src/sheet-object-widget.c b/src/sheet-object-widget.c
index cb8a674..06b2b11 100644
--- a/src/sheet-object-widget.c
+++ b/src/sheet-object-widget.c
@@ -3333,7 +3333,8 @@ sheet_widget_draw_cairo (SheetObject const *so, cairo_t *cr,
 
 	SheetObjectWidget *sow = SHEET_OBJECT_WIDGET (so);
 
-	if ((sow->so.realized_list->data != NULL)) {
+	if ((sow->so.realized_list != NULL) && 
+	    (sow->so.realized_list->data != NULL)) {
 		SheetObjectView *view = sow->so.realized_list->data;
 		GocWidget *item = get_goc_widget (view);
 		GtkWidget *w = GTK_WIDGET (item->widget);
@@ -3359,7 +3360,8 @@ sheet_widget_draw_cairo (SheetObject const *so, cairo_t *cr,
 		cairo_fill (cr);
 		cairo_restore (cr);
 		g_object_unref(G_OBJECT (ss));
-	}
+	} else 
+		g_warning ("Failed to draw sheet object widget.");
 
 #endif
 }



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