diff --git a/ChangeLog b/ChangeLog index dabd4bd66..f1503e989 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-04-16 Matthias Clasen + + * gtk/gtktextbuffer.c (_gtk_text_buffer_remove_all_tags): + Avoid a NULL dereference. (Coverity) + 2006-04-15 Matthias Clasen * gtk/gtkrecentmanager.c: Make filename_warning() static, diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index dabd4bd66..f1503e989 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +2006-04-16 Matthias Clasen + + * gtk/gtktextbuffer.c (_gtk_text_buffer_remove_all_tags): + Avoid a NULL dereference. (Coverity) + 2006-04-15 Matthias Clasen * gtk/gtkrecentmanager.c: Make filename_warning() static, diff --git a/gtk/gtktextbuffer.c b/gtk/gtktextbuffer.c index 12b386a6d..ea04b885b 100644 --- a/gtk/gtktextbuffer.c +++ b/gtk/gtktextbuffer.c @@ -2514,7 +2514,7 @@ gtk_text_buffer_remove_all_tags (GtkTextBuffer *buffer, GtkTextIter first, second, tmp; GSList *tags; GSList *tmp_list; - GSList *prev; + GSList *prev, *next; GtkTextTag *tag; g_return_if_fail (GTK_IS_TEXT_BUFFER (buffer)); @@ -2569,14 +2569,15 @@ gtk_text_buffer_remove_all_tags (GtkTextBuffer *buffer, if (tag == tmp_list->data) { /* duplicate */ + next = tmp_list->next; if (prev) - prev->next = tmp_list->next; + prev->next = next; tmp_list->next = NULL; g_slist_free (tmp_list); - tmp_list = prev->next; + tmp_list = next; /* prev is unchanged */ } else