gtk+ r20253 - in branches/gtk-2-12: . gtk



Author: johan
Date: Fri May 30 11:08:37 2008
New Revision: 20253
URL: http://svn.gnome.org/viewvc/gtk+?rev=20253&view=rev

Log:
2008-05-25  Johan Dahlin  <johan gnome org>

    Merge from trunk:

    Bug 534694 â Col id in GtkListStore could be out of range

    * gtk/gtkliststore.c (list_store_start_element): Fix up error handling
    a bit. Pointed out by Jan Arne Petersen.



Modified:
   branches/gtk-2-12/ChangeLog
   branches/gtk-2-12/gtk/gtkliststore.c

Modified: branches/gtk-2-12/gtk/gtkliststore.c
==============================================================================
--- branches/gtk-2-12/gtk/gtkliststore.c	(original)
+++ branches/gtk-2-12/gtk/gtkliststore.c	Fri May 30 11:08:37 2008
@@ -2072,8 +2072,11 @@
       int i, id = -1;
 
       if (data->row_column >= data->n_columns)
-	g_set_error (error, data->error_quark, 0,
-		     "Too many columns, maximum is %d\n", data->n_columns - 1);
+        {
+	  g_set_error (error, data->error_quark, 0,
+	  	       "Too many columns, maximum is %d\n", data->n_columns - 1);
+          return;
+        }
 
       for (i = 0; names[i]; i++)
 	if (strcmp (names[i], "id") == 0)
@@ -2081,13 +2084,26 @@
 	    errno = 0;
 	    id = atoi (values[i]);
 	    if (errno)
-	      g_set_error (error, data->error_quark, 0,
-			   "the id tag %s could not be converted to an integer", values[i]);
+              {
+	        g_set_error (error, data->error_quark, 0,
+			     "the id tag %s could not be converted to an integer",
+			     values[i]);
+                return;
+              }
+	    if (id < 0 || id >= data->n_columns)
+              {
+                g_set_error (error, data->error_quark, 0,
+                             "id value %d out of range", id);
+                return;
+              }
 	  }
 
       if (id == -1)
-	g_set_error (error, data->error_quark, 0,
-		     "<col> needs an id attribute");
+        {
+	  g_set_error (error, data->error_quark, 0,
+	  	       "<col> needs an id attribute");
+          return;
+        }
 
       data->columns[data->row_column] = id;
       data->row_column++;



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