[gtk+/quartz-integration] Bug #653450: Ensure that display is set during drag-and-drop, and that string lists' memory is zeroe
- From: John Ralls <jralls src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/quartz-integration] Bug #653450: Ensure that display is set during drag-and-drop, and that string lists' memory is zeroe
- Date: Sun, 3 Jul 2011 23:40:33 +0000 (UTC)
commit f183303b49bf3a7debba648dd43a59dca8c23efd
Author: John Ralls <jralls ceridwen us>
Date: Sun Jul 3 16:40:03 2011 -0700
Bug #653450: Ensure that display is set during drag-and-drop, and that string lists' memory is zeroed after allocation to prevent g_strfreev() from over-running.
gdk/quartz/gdkselection-quartz.c | 7 ++++---
gtk/gtkdnd-quartz.c | 1 +
gtk/gtkquartz.c | 3 ++-
3 files changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/gdk/quartz/gdkselection-quartz.c b/gdk/quartz/gdkselection-quartz.c
index c28bec5..f2fcf0b 100644
--- a/gdk/quartz/gdkselection-quartz.c
+++ b/gdk/quartz/gdkselection-quartz.c
@@ -125,9 +125,10 @@ make_list (const gchar *text,
}
if (list)
- *list = g_new (gchar *, n_strings + 1);
-
- (*list)[n_strings] = NULL;
+ {
+ *list = g_new (gchar *, n_strings + 1);
+ memset (*list, 0, sizeof (*list));
+ }
i = n_strings;
tmp_list = strings;
diff --git a/gtk/gtkdnd-quartz.c b/gtk/gtkdnd-quartz.c
index ff86692..304371d 100644
--- a/gtk/gtkdnd-quartz.c
+++ b/gtk/gtkdnd-quartz.c
@@ -148,6 +148,7 @@ struct _GtkDragFindData
selection_data.data = NULL;
selection_data.length = -1;
selection_data.target = _gtk_quartz_pasteboard_type_to_atom (type);
+ selection_data.display = gdk_display_get_default ();
if (gtk_target_list_find (info->target_list,
selection_data.target,
diff --git a/gtk/gtkquartz.c b/gtk/gtkquartz.c
index 19b6034..fd5009f 100644
--- a/gtk/gtkquartz.c
+++ b/gtk/gtkquartz.c
@@ -160,7 +160,8 @@ _gtk_quartz_get_selection_data_from_pasteboard (NSPasteboard *pasteboard,
selection_data = g_slice_new0 (GtkSelectionData);
selection_data->selection = selection;
selection_data->target = target;
-
+ if (!selection_data->display)
+ selection_data->display = gdk_display_get_default ();
if (target == gdk_atom_intern_static_string ("UTF8_STRING"))
{
NSString *s = [pasteboard stringForType:NSStringPboardType];
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]