Package: gtk+2.0 / 2.24.25-3+deb8u2

Metadata

Package Version Patches format
gtk+2.0 2.24.25-3+deb8u2 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
0001 Make gdk_event_apply_filters safe against changes in.patch | (download)

gdk/gdkinternals.h | 6 6 + 0 - 0 !
gdk/gdkwindow.c | 30 20 + 10 - 0 !
gdk/quartz/gdkevents-quartz.c | 55 38 + 17 - 0 !
gdk/win32/gdkevents-win32.c | 37 29 + 8 - 0 !
gdk/x11/gdkevents-x11.c | 37 29 + 8 - 0 !
5 files changed, 122 insertions(+), 43 deletions(-)

 [patch] make gdk_event_apply_filters safe against changes in filter
 list

An event filter may add or remove filters itself. This patch does
two things to address this case. The first is to take a temporary
reference to the filter while it is being used. The second is
to wait until after the filter function is run before determining
the next node in the list to process. This guards against
changes to the next node. It also does not run functions
that have been marked as removed. Though I'm not sure if this
case can arise.

https://bugzilla.gnome.org/show_bug.cgi?id=635380

Backport of 323df2b2800383832ed3c2e43626f2c6821c33ec to
the gtk-2-24 branch by Wolfgang Ulbrich.

http://bugs.debian.org/777142

0002 gdk Fix GdkWindowFilter internal refcounting.patch | (download)

gdk/gdkinternals.h | 3 3 + 0 - 0 !
gdk/gdkwindow.c | 68 49 + 19 - 0 !
gdk/x11/gdkevents-x11.c | 35 18 + 17 - 0 !
3 files changed, 70 insertions(+), 36 deletions(-)

 [patch 1/2] gdk: fix gdkwindowfilter internal refcounting

Running gnome-shell under valgrind, I saw the attached invalid write.
Basically we can destroy a window during event processing, and the old
window_remove_filters simply called g_free() on the filter, ignoring
the refcount.  Then later in event processing we call filter->refcount--,
which is writing to free()d memory.

Fix this by centralizing list mutation and refcount handling inside
a new shared _gdk_window_filter_unref() function, and using that
everywhere.

==13876== Invalid write of size 4
==13876==    at 0x446B181: gdk_event_apply_filters (gdkeventsource.c:86)
==13876==    by 0x446B411: _gdk_events_queue (gdkeventsource.c:188)
==13876==    by 0x44437EF: gdk_display_get_event (gdkdisplay.c:410)
==13876==    by 0x446B009: gdk_event_source_dispatch (gdkeventsource.c:317)
==13876==    by 0x4AB7159: g_main_context_dispatch (gmain.c:2436)
==13876==    by 0x4AB7957: g_main_context_iterate.clone.5 (gmain.c:3087)
==13876==    by 0x4AB806A: g_main_loop_run (gmain.c:3295)
==13876==    by 0x8084D6B: main (main.c:722)
==13876==  Address 0x1658bcac is 12 bytes inside a block of size 16 free'd
==13876==    at 0x4005EAD: free (vg_replace_malloc.c:366)
==13876==    by 0x4ABE515: g_free (gmem.c:263)
==13876==    by 0x444BCC9: window_remove_filters (gdkwindow.c:1873)
==13876==    by 0x4454BA3: _gdk_window_destroy_hierarchy (gdkwindow.c:2043)
==13876==    by 0x447BF6E: gdk_window_destroy_notify (gdkwindow-x11.c:1115)
==13876==    by 0x43588E2: _gtk_socket_windowing_filter_func (gtksocket-x11.c:518)
==13876==    by 0x446B170: gdk_event_apply_filters (gdkeventsource.c:79)
==13876==    by 0x446B411: _gdk_events_queue (gdkeventsource.c:188)
==13876==    by 0x44437EF: gdk_display_get_event (gdkdisplay.c:410)
==13876==    by 0x446B009: gdk_event_source_dispatch (gdkeventsource.c:317)
==13876==    by 0x4AB7159: g_main_context_dispatch (gmain.c:2436)
==13876==    by 0x4AB7957: g_main_context_iterate.clone.5 (gmain.c:3087)

https://bugzilla.gnome.org/show_bug.cgi?id=637464

Backport of 806c04411d306680353cf90cffee98ce73e122f2 to
the gtk-2-24 branch. 806c0441 was authored by Colin Walters
<walters@verbum.org>

Without this patch, the spotify linux client was crashing during
playback of some songs when using gtk+ 2.24.26

https://bugzilla.gnome.org/show_bug.cgi?id=745536

0003 gdkwindow Fix event unref iteration.patch | (download)

gdk/gdkwindow.c | 9 5 + 4 - 0 !
1 file changed, 5 insertions(+), 4 deletions(-)

 [patch 2/2] gdkwindow: fix event unref iteration

We were double looping previously which caused a NULL deref.

(cherry picked from commit d08ff485f28f23427bff1b3aac64ab3f77a8664d)

001_static linking dont query immodules.patch | (download)

configure.ac | 1 1 + 0 - 0 !
modules/input/Makefile.am | 17 16 + 1 - 0 !
2 files changed, 17 insertions(+), 1 deletion(-)

 don't query immodules for the local tree when cross-compiling or
             when --disable-shared was given
Bug: http://bugzilla.gnome.org/show_bug.cgi?id=346531

002_static linking dont build perf.patch | (download)

Makefile.am | 7 6 + 1 - 0 !
1 file changed, 6 insertions(+), 1 deletion(-)

 don't build perf measurement tools in static builds
Bug: http://bugzilla.gnome.org/show_bug.cgi?id=346559

003_gdk.pc_privates.patch | (download)

configure.ac | 14 9 + 5 - 0 !
gdk-2.0.pc.in | 1 1 + 0 - 0 !
2 files changed, 10 insertions(+), 5 deletions(-)

---
004_gtk+ ximian gtk2 filesel navbutton 5.patch | (download)

gtk/gtkfilesel.c | 291 264 + 27 - 0 !
gtk/stock-icons/ximian-icons.h | 825 825 + 0 - 0 !
2 files changed, 1089 insertions(+), 27 deletions(-)

---
005_support_disabling_x11_extensions.patch | (download)

configure.ac | 23 19 + 4 - 0 !
1 file changed, 19 insertions(+), 4 deletions(-)

---
015_default fallback icon theme.patch | (download)

gtk/gtksettings.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

---
022_disable viqr im for vi locale.patch | (download)

modules/input/imviqr.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

---
042_treeview_single focus.patch | (download)

gtk/gtktreeview.c | 3 2 + 1 - 0 !
1 file changed, 2 insertions(+), 1 deletion(-)

---
044_tracker_fts.patch | (download)

gtk/gtksearchenginetracker.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 enable tracker full text search
 Tracker in Debian is compiled with FTS support, so we make use of that in
 GTK3's file selector dialog.
 This way files can be found by their content and not only their file name.

060_ignore random icons.patch | (download)

gtk/updateiconcache.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

---
061_use_pdf_as_default_printing_standard.patch | (download)

modules/printbackends/lpr/gtkprintbackendlpr.c | 4 3 + 1 - 0 !
1 file changed, 3 insertions(+), 1 deletion(-)

---
065_gir_set_packages.patch | (download)

gdk/Makefile.am | 10 7 + 3 - 0 !
gtk/Makefile.am | 6 4 + 2 - 0 !
2 files changed, 11 insertions(+), 5 deletions(-)

---
098_multiarch_module_path.patch | (download)

gtk/gtkmodules.c | 13 8 + 5 - 0 !
1 file changed, 8 insertions(+), 5 deletions(-)

 fall back to the hard-coded pre-multiarch module directory
 Include /usr/lib/gtk-2.0 in the path as a fallback when building for
 multiarch, to maintain compatibility with packages installing modules to
 the old directories.
099_CVE 2013 7447.patch | (download)

gdk/gdkcairo.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 avoid integer overflow

Use g_malloc_n in gdk_cairo_set_source_pixbuf when allocating
a large block of memory, to avoid integer overflow.

Pointed out by Bert Massop in
https://bugzilla.gnome.org/show_bug.cgi?id=703220

100 GtkMenuShell always activate menu shells.patch | (download)

gtk/gtkmenubar.c | 1 0 + 1 - 0 !
gtk/gtkmenuitem.c | 2 0 + 2 - 0 !
gtk/gtkmenushell.c | 8 5 + 3 - 0 !
gtk/gtkmenushell.h | 1 0 + 1 - 0 !
4 files changed, 5 insertions(+), 7 deletions(-)

 [patch] gtkmenushell: always 'activate' menu shells

Failing to do so can leave us with a stuck grab in some cases.
https://bugzilla.gnome.org/show_bug.cgi?id=554057

Cherry-picks f5eee56b56e2f371a0dc659f2d402b0cfc1c42c2,
9833fbd77a63ee5dd8f6b5519831db2a4b29ebb9 and
4eac7f24177d947852574f11ef483b1c43fd17e5 from GTK3.