Bug 534694 – Col id in GtkListStore could be out of range
2008-05-25 Matthias Clasen <mclasen@redhat.com> 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. svn path=/trunk/; revision=20157
This commit is contained in:
		
				
					committed by
					
						
						Matthias Clasen
					
				
			
			
				
	
			
			
			
						parent
						
							bd4acfe467
						
					
				
				
					commit
					2bf2b07c13
				
			@ -1,3 +1,10 @@
 | 
				
			|||||||
 | 
					2008-05-25  Matthias Clasen  <mclasen@redhat.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2008-05-25  Matthias Clasen  <mclasen@redhat.com>
 | 
					2008-05-25  Matthias Clasen  <mclasen@redhat.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Bug 532497 – Configure problem when cross-compiling
 | 
						Bug 532497 – Configure problem when cross-compiling
 | 
				
			||||||
 | 
				
			|||||||
@ -2084,8 +2084,11 @@ list_store_start_element (GMarkupParseContext *context,
 | 
				
			|||||||
      ColInfo *info;
 | 
					      ColInfo *info;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if (data->row_column >= data->n_columns)
 | 
					      if (data->row_column >= data->n_columns)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
	  g_set_error (error, data->error_quark, 0,
 | 
						  g_set_error (error, data->error_quark, 0,
 | 
				
			||||||
	  	       "Too many columns, maximum is %d\n", data->n_columns - 1);
 | 
						  	       "Too many columns, maximum is %d\n", data->n_columns - 1);
 | 
				
			||||||
 | 
					          return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      for (i = 0; names[i]; i++)
 | 
					      for (i = 0; names[i]; i++)
 | 
				
			||||||
	if (strcmp (names[i], "id") == 0)
 | 
						if (strcmp (names[i], "id") == 0)
 | 
				
			||||||
@ -2093,9 +2096,18 @@ list_store_start_element (GMarkupParseContext *context,
 | 
				
			|||||||
	    errno = 0;
 | 
						    errno = 0;
 | 
				
			||||||
	    id = atoi (values[i]);
 | 
						    id = atoi (values[i]);
 | 
				
			||||||
	    if (errno)
 | 
						    if (errno)
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
	        g_set_error (error, data->error_quark, 0,
 | 
						        g_set_error (error, data->error_quark, 0,
 | 
				
			||||||
		  	     "the id tag %s could not be converted to an integer",
 | 
							  	     "the id tag %s could not be converted to an integer",
 | 
				
			||||||
			     values[i]);
 | 
								     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;
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
	  }
 | 
						  }
 | 
				
			||||||
	else if (strcmp (names[i], "translatable") == 0)
 | 
						else if (strcmp (names[i], "translatable") == 0)
 | 
				
			||||||
	  {
 | 
						  {
 | 
				
			||||||
@ -2113,8 +2125,11 @@ list_store_start_element (GMarkupParseContext *context,
 | 
				
			|||||||
	  }
 | 
						  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if (id == -1)
 | 
					      if (id == -1)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
	  g_set_error (error, data->error_quark, 0,
 | 
						  g_set_error (error, data->error_quark, 0,
 | 
				
			||||||
	  	       "<col> needs an id attribute");
 | 
						  	       "<col> needs an id attribute");
 | 
				
			||||||
 | 
					          return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
      info = g_slice_new0 (ColInfo);
 | 
					      info = g_slice_new0 (ColInfo);
 | 
				
			||||||
      info->translatable = translatable;
 | 
					      info->translatable = translatable;
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user