gtk+ r20253 - in branches/gtk-2-12: . gtk
- From: johan svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk+ r20253 - in branches/gtk-2-12: . gtk
- Date: Fri, 30 May 2008 11:08:37 +0000 (UTC)
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]