diff options
author | Liliana Marie Prikler <[email protected]> | 2024-03-30 09:47:43 +0100 |
---|---|---|
committer | Liliana Marie Prikler <[email protected]> | 2024-03-30 09:47:43 +0100 |
commit | a915a57d91c54e926b625f98833dead8263607b0 (patch) | |
tree | 24b4b9070055733acad9b2c0bdfcda2fa5affbd4 /gnu/packages/patches/gtk2-harden-list-store.patch | |
parent | 4b23fd7adbddc1bc18b209912c0f3ef369da2f24 (diff) | |
parent | 704e09f1626303625e1e4eea552bff3a05303e89 (diff) |
Merge branch 'gnome-team'
Diffstat (limited to 'gnu/packages/patches/gtk2-harden-list-store.patch')
-rw-r--r-- | gnu/packages/patches/gtk2-harden-list-store.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/gnu/packages/patches/gtk2-harden-list-store.patch b/gnu/packages/patches/gtk2-harden-list-store.patch new file mode 100644 index 0000000000..f49dc3bc77 --- /dev/null +++ b/gnu/packages/patches/gtk2-harden-list-store.patch @@ -0,0 +1,42 @@ +Backport the implementation of gtk_list_store_iter_is_valid from gtk+-3. + +Index: gtk+-2.24.33/gtk/gtkliststore.c +=================================================================== +--- gtk+-2.24.33.orig/gtk/gtkliststore.c ++++ gtk+-2.24.33/gtk/gtkliststore.c +@@ -1195,16 +1195,31 @@ gboolean + gtk_list_store_iter_is_valid (GtkListStore *list_store, + GtkTreeIter *iter) + { ++ GSequenceIter *seq_iter; ++ + g_return_val_if_fail (GTK_IS_LIST_STORE (list_store), FALSE); + g_return_val_if_fail (iter != NULL, FALSE); + +- if (!VALID_ITER (iter, list_store)) +- return FALSE; ++ /* can't use VALID_ITER() here, because iter might point ++ * to random memory. ++ * ++ * We MUST NOT dereference it. ++ */ + +- if (g_sequence_iter_get_sequence (iter->user_data) != list_store->seq) ++ if (iter == NULL || ++ iter->user_data == NULL || ++ list_store->stamp != iter->stamp) + return FALSE; + +- return TRUE; ++ for (seq_iter = g_sequence_get_begin_iter (list_store->seq); ++ !g_sequence_iter_is_end (seq_iter); ++ seq_iter = g_sequence_iter_next (seq_iter)) ++ { ++ if (seq_iter == iter->user_data) ++ return TRUE; ++ } ++ ++ return FALSE; + } + + static gboolean real_gtk_list_store_row_draggable (GtkTreeDragSource *drag_source, |