Don't pass a negative value as string length to get_child_node().
2006-04-12 Matthias Clasen <mclasen@redhat.com> * gtk/gtkuimanager.c (start_element_handler): Don't pass a negative value as string length to get_child_node(). (Coverity)
This commit is contained in:

committed by
Matthias Clasen

parent
d13554a35c
commit
e0e24d0313
@ -1,5 +1,8 @@
|
|||||||
2006-04-12 Matthias Clasen <mclasen@redhat.com>
|
2006-04-12 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkuimanager.c (start_element_handler): Don't pass
|
||||||
|
a negative value as string length to get_child_node(). (Coverity)
|
||||||
|
|
||||||
* gtk/gtkicontheme.c (insert_theme): Handle dirs == NULL
|
* gtk/gtkicontheme.c (insert_theme): Handle dirs == NULL
|
||||||
gracefully. (Coverity)
|
gracefully. (Coverity)
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
2006-04-12 Matthias Clasen <mclasen@redhat.com>
|
2006-04-12 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkuimanager.c (start_element_handler): Don't pass
|
||||||
|
a negative value as string length to get_child_node(). (Coverity)
|
||||||
|
|
||||||
* gtk/gtkicontheme.c (insert_theme): Handle dirs == NULL
|
* gtk/gtkicontheme.c (insert_theme): Handle dirs == NULL
|
||||||
gracefully. (Coverity)
|
gracefully. (Coverity)
|
||||||
|
|
||||||
|
@ -1308,7 +1308,7 @@ start_element_handler (GMarkupParseContext *context,
|
|||||||
if (!strcmp (node_name, "separator"))
|
if (!strcmp (node_name, "separator"))
|
||||||
{
|
{
|
||||||
node_name = NULL;
|
node_name = NULL;
|
||||||
length = -1;
|
length = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
length = strlen (node_name);
|
length = strlen (node_name);
|
||||||
@ -1817,7 +1817,7 @@ get_action_by_name (GtkUIManager *merge,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static void
|
||||||
find_menu_position (GNode *node,
|
find_menu_position (GNode *node,
|
||||||
GtkWidget **menushell_p,
|
GtkWidget **menushell_p,
|
||||||
gint *pos_p)
|
gint *pos_p)
|
||||||
@ -1825,13 +1825,12 @@ find_menu_position (GNode *node,
|
|||||||
GtkWidget *menushell;
|
GtkWidget *menushell;
|
||||||
gint pos;
|
gint pos;
|
||||||
|
|
||||||
g_return_val_if_fail (node != NULL, FALSE);
|
g_return_if_fail (node != NULL);
|
||||||
g_return_val_if_fail (NODE_INFO (node)->type == NODE_TYPE_MENU ||
|
g_return_if_fail (NODE_INFO (node)->type == NODE_TYPE_MENU ||
|
||||||
NODE_INFO (node)->type == NODE_TYPE_POPUP ||
|
NODE_INFO (node)->type == NODE_TYPE_POPUP ||
|
||||||
NODE_INFO (node)->type == NODE_TYPE_MENU_PLACEHOLDER ||
|
NODE_INFO (node)->type == NODE_TYPE_MENU_PLACEHOLDER ||
|
||||||
NODE_INFO (node)->type == NODE_TYPE_MENUITEM ||
|
NODE_INFO (node)->type == NODE_TYPE_MENUITEM ||
|
||||||
NODE_INFO (node)->type == NODE_TYPE_SEPARATOR,
|
NODE_INFO (node)->type == NODE_TYPE_SEPARATOR);
|
||||||
FALSE);
|
|
||||||
|
|
||||||
/* first sibling -- look at parent */
|
/* first sibling -- look at parent */
|
||||||
if (node->prev == NULL)
|
if (node->prev == NULL)
|
||||||
@ -1867,7 +1866,7 @@ find_menu_position (GNode *node,
|
|||||||
default:
|
default:
|
||||||
g_warning("%s: bad parent node type %d", G_STRLOC,
|
g_warning("%s: bad parent node type %d", G_STRLOC,
|
||||||
NODE_INFO (parent)->type);
|
NODE_INFO (parent)->type);
|
||||||
return FALSE;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1881,9 +1880,9 @@ find_menu_position (GNode *node,
|
|||||||
else
|
else
|
||||||
prev_child = NODE_INFO (sibling)->proxy;
|
prev_child = NODE_INFO (sibling)->proxy;
|
||||||
|
|
||||||
g_return_val_if_fail (GTK_IS_WIDGET (prev_child), FALSE);
|
g_return_if_fail (GTK_IS_WIDGET (prev_child));
|
||||||
menushell = gtk_widget_get_parent (prev_child);
|
menushell = gtk_widget_get_parent (prev_child);
|
||||||
g_return_val_if_fail (GTK_IS_MENU_SHELL (menushell), FALSE);
|
g_return_if_fail (GTK_IS_MENU_SHELL (menushell));
|
||||||
|
|
||||||
pos = g_list_index (GTK_MENU_SHELL (menushell)->children, prev_child) + 1;
|
pos = g_list_index (GTK_MENU_SHELL (menushell)->children, prev_child) + 1;
|
||||||
}
|
}
|
||||||
@ -1892,11 +1891,9 @@ find_menu_position (GNode *node,
|
|||||||
*menushell_p = menushell;
|
*menushell_p = menushell;
|
||||||
if (pos_p)
|
if (pos_p)
|
||||||
*pos_p = pos;
|
*pos_p = pos;
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static void
|
||||||
find_toolbar_position (GNode *node,
|
find_toolbar_position (GNode *node,
|
||||||
GtkWidget **toolbar_p,
|
GtkWidget **toolbar_p,
|
||||||
gint *pos_p)
|
gint *pos_p)
|
||||||
@ -1904,12 +1901,11 @@ find_toolbar_position (GNode *node,
|
|||||||
GtkWidget *toolbar;
|
GtkWidget *toolbar;
|
||||||
gint pos;
|
gint pos;
|
||||||
|
|
||||||
g_return_val_if_fail (node != NULL, FALSE);
|
g_return_if_fail (node != NULL);
|
||||||
g_return_val_if_fail (NODE_INFO (node)->type == NODE_TYPE_TOOLBAR ||
|
g_return_if_fail (NODE_INFO (node)->type == NODE_TYPE_TOOLBAR ||
|
||||||
NODE_INFO (node)->type == NODE_TYPE_TOOLBAR_PLACEHOLDER ||
|
NODE_INFO (node)->type == NODE_TYPE_TOOLBAR_PLACEHOLDER ||
|
||||||
NODE_INFO (node)->type == NODE_TYPE_TOOLITEM ||
|
NODE_INFO (node)->type == NODE_TYPE_TOOLITEM ||
|
||||||
NODE_INFO (node)->type == NODE_TYPE_SEPARATOR,
|
NODE_INFO (node)->type == NODE_TYPE_SEPARATOR);
|
||||||
FALSE);
|
|
||||||
|
|
||||||
/* first sibling -- look at parent */
|
/* first sibling -- look at parent */
|
||||||
if (node->prev == NULL)
|
if (node->prev == NULL)
|
||||||
@ -1925,14 +1921,14 @@ find_toolbar_position (GNode *node,
|
|||||||
break;
|
break;
|
||||||
case NODE_TYPE_TOOLBAR_PLACEHOLDER:
|
case NODE_TYPE_TOOLBAR_PLACEHOLDER:
|
||||||
toolbar = gtk_widget_get_parent (NODE_INFO (parent)->proxy);
|
toolbar = gtk_widget_get_parent (NODE_INFO (parent)->proxy);
|
||||||
g_return_val_if_fail (GTK_IS_TOOLBAR (toolbar), FALSE);
|
g_return_if_fail (GTK_IS_TOOLBAR (toolbar));
|
||||||
pos = gtk_toolbar_get_item_index (GTK_TOOLBAR (toolbar),
|
pos = gtk_toolbar_get_item_index (GTK_TOOLBAR (toolbar),
|
||||||
GTK_TOOL_ITEM (NODE_INFO (parent)->proxy)) + 1;
|
GTK_TOOL_ITEM (NODE_INFO (parent)->proxy)) + 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
g_warning ("%s: bad parent node type %d", G_STRLOC,
|
g_warning ("%s: bad parent node type %d", G_STRLOC,
|
||||||
NODE_INFO (parent)->type);
|
NODE_INFO (parent)->type);
|
||||||
return FALSE;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1946,9 +1942,9 @@ find_toolbar_position (GNode *node,
|
|||||||
else
|
else
|
||||||
prev_child = NODE_INFO (sibling)->proxy;
|
prev_child = NODE_INFO (sibling)->proxy;
|
||||||
|
|
||||||
g_return_val_if_fail (GTK_IS_WIDGET (prev_child), FALSE);
|
g_return_if_fail (GTK_IS_WIDGET (prev_child));
|
||||||
toolbar = gtk_widget_get_parent (prev_child);
|
toolbar = gtk_widget_get_parent (prev_child);
|
||||||
g_return_val_if_fail (GTK_IS_TOOLBAR (toolbar), FALSE);
|
g_return_if_fail (GTK_IS_TOOLBAR (toolbar));
|
||||||
|
|
||||||
pos = gtk_toolbar_get_item_index (GTK_TOOLBAR (toolbar),
|
pos = gtk_toolbar_get_item_index (GTK_TOOLBAR (toolbar),
|
||||||
GTK_TOOL_ITEM (prev_child)) + 1;
|
GTK_TOOL_ITEM (prev_child)) + 1;
|
||||||
@ -1958,8 +1954,6 @@ find_toolbar_position (GNode *node,
|
|||||||
*toolbar_p = toolbar;
|
*toolbar_p = toolbar;
|
||||||
if (pos_p)
|
if (pos_p)
|
||||||
*pos_p = pos;
|
*pos_p = pos;
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2253,6 +2247,7 @@ update_node (GtkUIManager *self,
|
|||||||
GtkWidget *menushell;
|
GtkWidget *menushell;
|
||||||
gint pos;
|
gint pos;
|
||||||
|
|
||||||
|
if (!
|
||||||
if (NODE_INFO (node->parent)->type == NODE_TYPE_TOOLITEM ||
|
if (NODE_INFO (node->parent)->type == NODE_TYPE_TOOLITEM ||
|
||||||
find_menu_position (node, &menushell, &pos))
|
find_menu_position (node, &menushell, &pos))
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user