only try to strcmp or strlen if we managed to normalize and casefold the

Wed Dec 17 23:31:19 2003  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_search_equal_func): only
	try to strcmp or strlen if we managed to normalize and casefold
	the string correctly. Fixes crashes with non-UTF8 strings.
	(#121617, Patch from Tim-Philipp Müller).
This commit is contained in:
Kristian Rietveld 2003-12-17 22:33:54 +00:00 committed by Kristian Rietveld
parent 2a136e56b8
commit b1187d9e0e
6 changed files with 47 additions and 6 deletions

View File

@ -1,3 +1,10 @@
Wed Dec 17 23:31:19 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_equal_func): only
try to strcmp or strlen if we managed to normalize and casefold
the string correctly. Fixes crashes with non-UTF8 strings.
(#121617, Patch from Tim-Philipp Müller).
Wed Dec 17 23:20:23 2003 Matthias Clasen <maclas@gmx.de>
* gtk/gtkexpander.c (gtk_expander_animation_timeout): Add missing

View File

@ -1,3 +1,10 @@
Wed Dec 17 23:31:19 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_equal_func): only
try to strcmp or strlen if we managed to normalize and casefold
the string correctly. Fixes crashes with non-UTF8 strings.
(#121617, Patch from Tim-Philipp Müller).
Wed Dec 17 23:20:23 2003 Matthias Clasen <maclas@gmx.de>
* gtk/gtkexpander.c (gtk_expander_animation_timeout): Add missing

View File

@ -1,3 +1,10 @@
Wed Dec 17 23:31:19 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_equal_func): only
try to strcmp or strlen if we managed to normalize and casefold
the string correctly. Fixes crashes with non-UTF8 strings.
(#121617, Patch from Tim-Philipp Müller).
Wed Dec 17 23:20:23 2003 Matthias Clasen <maclas@gmx.de>
* gtk/gtkexpander.c (gtk_expander_animation_timeout): Add missing

View File

@ -1,3 +1,10 @@
Wed Dec 17 23:31:19 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_equal_func): only
try to strcmp or strlen if we managed to normalize and casefold
the string correctly. Fixes crashes with non-UTF8 strings.
(#121617, Patch from Tim-Philipp Müller).
Wed Dec 17 23:20:23 2003 Matthias Clasen <maclas@gmx.de>
* gtk/gtkexpander.c (gtk_expander_animation_timeout): Add missing

View File

@ -1,3 +1,10 @@
Wed Dec 17 23:31:19 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_search_equal_func): only
try to strcmp or strlen if we managed to normalize and casefold
the string correctly. Fixes crashes with non-UTF8 strings.
(#121617, Patch from Tim-Philipp Müller).
Wed Dec 17 23:20:23 2003 Matthias Clasen <maclas@gmx.de>
* gtk/gtkexpander.c (gtk_expander_animation_timeout): Add missing

View File

@ -11608,8 +11608,8 @@ gtk_tree_view_search_equal_func (GtkTreeModel *model,
gboolean retval = TRUE;
gchar *normalized_string;
gchar *normalized_key;
gchar *case_normalized_string;
gchar *case_normalized_key;
gchar *case_normalized_string = NULL;
gchar *case_normalized_key = NULL;
GValue value = {0,};
GValue transformed = {0,};
gint key_len;
@ -11628,12 +11628,18 @@ gtk_tree_view_search_equal_func (GtkTreeModel *model,
normalized_string = g_utf8_normalize (g_value_get_string (&transformed), -1, G_NORMALIZE_ALL);
normalized_key = g_utf8_normalize (key, -1, G_NORMALIZE_ALL);
case_normalized_string = g_utf8_casefold (normalized_string, -1);
case_normalized_key = g_utf8_casefold (normalized_key, -1);
key_len = strlen (case_normalized_key);
if (normalized_string && normalized_key)
{
case_normalized_string = g_utf8_casefold (normalized_string, -1);
case_normalized_key = g_utf8_casefold (normalized_key, -1);
if (!strncmp (case_normalized_key, case_normalized_string, key_len))
key_len = strlen (case_normalized_key);
if (!strncmp (case_normalized_key, case_normalized_string, key_len))
retval = FALSE;
}
else
retval = FALSE;
g_value_unset (&transformed);