From 344cdbd2a385b2e79cc975991f27218cd9c619f3 Mon Sep 17 00:00:00 2001 From: Michael Hutchinson Date: Mon, 25 Jul 2011 22:26:47 +0200 Subject: Added patch for gtk clipboard crash --- packages/gtk+.py | 4 ++++ packages/patches/gtk/gtk-clipboard-crash.patch | 30 ++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 packages/patches/gtk/gtk-clipboard-crash.patch (limited to 'packages') diff --git a/packages/gtk+.py b/packages/gtk+.py index 8c49017..9633518 100644 --- a/packages/gtk+.py +++ b/packages/gtk+.py @@ -42,6 +42,10 @@ class GtkPackage (GnomePackage): # new window on Lion # https://bugzilla.gnome.org/show_bug.cgi?id=655087 'patches/gtk/gdkemptypath.patch', + + # Bug 508601 - Copying from GTK+ applications causes crash + # https://bugzilla.gnome.org/show_bug.cgi?id=508601 + 'patches/gtk/gtk-clipboard-crash.patch', ]) def prep (self): diff --git a/packages/patches/gtk/gtk-clipboard-crash.patch b/packages/patches/gtk/gtk-clipboard-crash.patch new file mode 100644 index 0000000..a176d97 --- /dev/null +++ b/packages/patches/gtk/gtk-clipboard-crash.patch @@ -0,0 +1,30 @@ +From 8d69f3daf258c03e3b8d839cacc15a7b4d12e64d Mon Sep 17 00:00:00 2001 +From: Kristian Rietveld +Date: Mon, 25 Jul 2011 20:02:25 +0000 +Subject: Bug 508601 - Copying from GTK+ applications causes crash + +In GtkClipboardOwner pasteboard:provideDataForType do not call +_gtk_quartz_set_selection_data_for_pasteboard() is selection_data.length +is smaller than 0. The function relies on having a positive length, +since it stores the length in a uint ... +--- +diff --git a/gtk/gtkclipboard-quartz.c b/gtk/gtkclipboard-quartz.c +index a77d443..ee7766e 100644 +--- a/gtk/gtkclipboard-quartz.c ++++ b/gtk/gtkclipboard-quartz.c +@@ -110,9 +110,10 @@ struct _GtkClipboardClass + clipboard->get_func (clipboard, &selection_data, + info, + clipboard->user_data); +- +- _gtk_quartz_set_selection_data_for_pasteboard (clipboard->pasteboard, +- &selection_data); ++ ++ if (selection_data.length >= 0) ++ _gtk_quartz_set_selection_data_for_pasteboard (clipboard->pasteboard, ++ &selection_data); + + g_free (selection_data.data); + } +-- +cgit v0.9 -- cgit v1.2.3