diff --git a/ChangeLog b/ChangeLog index 6d7344dc9d..40d3909a68 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Wed Dec 17 23:31:19 2003 Kristian Rietveld + + Merge from HEAD. + + * 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:16:45 2003 Kristian Rietveld Merge from HEAD. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 6d7344dc9d..40d3909a68 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,12 @@ +Wed Dec 17 23:31:19 2003 Kristian Rietveld + + Merge from HEAD. + + * 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:16:45 2003 Kristian Rietveld Merge from HEAD. diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 6d7344dc9d..40d3909a68 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,12 @@ +Wed Dec 17 23:31:19 2003 Kristian Rietveld + + Merge from HEAD. + + * 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:16:45 2003 Kristian Rietveld Merge from HEAD. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 6d7344dc9d..40d3909a68 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,12 @@ +Wed Dec 17 23:31:19 2003 Kristian Rietveld + + Merge from HEAD. + + * 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:16:45 2003 Kristian Rietveld Merge from HEAD. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 6d7344dc9d..40d3909a68 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,12 @@ +Wed Dec 17 23:31:19 2003 Kristian Rietveld + + Merge from HEAD. + + * 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:16:45 2003 Kristian Rietveld Merge from HEAD. diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index e0db1fd6d8..8b8f276e82 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -11169,8 +11169,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; @@ -11189,12 +11189,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);