Commit 32e1c3b4 authored by Matthias Clasen's avatar Matthias Clasen Committed by Matthias Clasen

Don't corrupt memory when faced with paths with ridiculously large

2007-01-08  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktreemodel.c (gtk_tree_path_to_string): Don't
        corrupt memory when faced with paths with ridiculously
        large indices. Found by the GTKVTS test suite.



svn path=/trunk/; revision=17116
parent 74280fde
2007-01-08 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreemodel.c (gtk_tree_path_to_string): Don't
corrupt memory when faced with paths with ridiculously
large indices. Found by the GTKVTS test suite.
2007-01-08 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkmodules.c (_gtk_modules_init): Set
......
......@@ -494,22 +494,24 @@ gtk_tree_path_new_from_indices (gint first_index,
gchar *
gtk_tree_path_to_string (GtkTreePath *path)
{
gchar *retval, *ptr;
gint i;
gchar *retval, *ptr, *end;
gint i, n;
g_return_val_if_fail (path != NULL, NULL);
if (path->depth == 0)
return NULL;
ptr = retval = g_new0 (gchar, path->depth*8);
g_sprintf (retval, "%d", path->indices[0]);
while (*ptr != '\000')
n = path->depth * 12;
ptr = retval = g_new0 (gchar, n);
end = ptr + n;
g_snprintf (retval, end - ptr, "%d", path->indices[0]);
while (*ptr != '\000')
ptr++;
for (i = 1; i < path->depth; i++)
{
g_sprintf (ptr, ":%d", path->indices[i]);
g_snprintf (ptr, end - ptr, ":%d", path->indices[i]);
while (*ptr != '\000')
ptr++;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment