aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-contact-list-view.c
diff options
context:
space:
mode:
authorPhilip Withnall <philip@tecnocode.co.uk>2011-03-30 22:18:03 +0800
committerSjoerd Simons <sjoerd.simons@collabora.co.uk>2011-05-02 17:46:43 +0800
commitb84d4bc7464a400fd983a3c430189daab69f49d2 (patch)
tree049aa5fa243793894e1a06793d4d94f5337e0b4b /libempathy-gtk/empathy-contact-list-view.c
parent0e2105c149b3e2d5fc8368cbab0daf546cd07cf3 (diff)
downloadgsoc2013-empathy-b84d4bc7464a400fd983a3c430189daab69f49d2.tar
gsoc2013-empathy-b84d4bc7464a400fd983a3c430189daab69f49d2.tar.gz
gsoc2013-empathy-b84d4bc7464a400fd983a3c430189daab69f49d2.tar.bz2
gsoc2013-empathy-b84d4bc7464a400fd983a3c430189daab69f49d2.tar.lz
gsoc2013-empathy-b84d4bc7464a400fd983a3c430189daab69f49d2.tar.xz
gsoc2013-empathy-b84d4bc7464a400fd983a3c430189daab69f49d2.tar.zst
gsoc2013-empathy-b84d4bc7464a400fd983a3c430189daab69f49d2.zip
Bug 646227 — Possible overflow in persona-view:drag_data_get
I think it was a fluke that this code worked in the first place, since it was accessing arrays with indices which were out of range, and which wouldn't have corresponded to the correct entries even if they were in range. This should fix the mapping between DND types and DND URIs/atoms in the contact list, individual and persona views. Closes: bgo#646227
Diffstat (limited to 'libempathy-gtk/empathy-contact-list-view.c')
-rw-r--r--libempathy-gtk/empathy-contact-list-view.c18
1 files changed, 2 insertions, 16 deletions
diff --git a/libempathy-gtk/empathy-contact-list-view.c b/libempathy-gtk/empathy-contact-list-view.c
index 79eb5a316..bda1ed8d5 100644
--- a/libempathy-gtk/empathy-contact-list-view.c
+++ b/libempathy-gtk/empathy-contact-list-view.c
@@ -112,9 +112,6 @@ static const GtkTargetEntry drag_types_source[] = {
{ "text/contact-id", 0, DND_DRAG_TYPE_CONTACT_ID },
};
-static GdkAtom drag_atoms_dest[G_N_ELEMENTS (drag_types_dest)];
-static GdkAtom drag_atoms_source[G_N_ELEMENTS (drag_types_source)];
-
enum {
DRAG_CONTACT_RECEIVED,
LAST_SIGNAL
@@ -763,7 +760,8 @@ contact_list_view_drag_data_get (GtkWidget *widget,
str = g_strconcat (account_id, ":", contact_id, NULL);
if (info == DND_DRAG_TYPE_CONTACT_ID) {
- gtk_selection_data_set (selection, drag_atoms_source[info], 8,
+ gtk_selection_data_set (selection,
+ gdk_atom_intern ("text/contact-id", FALSE), 8,
(guchar *) str, strlen (str) + 1);
}
@@ -1497,7 +1495,6 @@ contact_list_view_constructed (GObject *object)
EmpathyContactListViewPriv *priv = GET_PRIV (view);
GtkCellRenderer *cell;
GtkTreeViewColumn *col;
- guint i;
priv->filter = GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new (
GTK_TREE_MODEL (priv->store), NULL));
@@ -1629,17 +1626,6 @@ contact_list_view_constructed (GObject *object)
/* Actually add the column now we have added all cell renderers */
gtk_tree_view_append_column (GTK_TREE_VIEW (view), col);
-
- /* Drag & Drop. */
- for (i = 0; i < G_N_ELEMENTS (drag_types_dest); ++i) {
- drag_atoms_dest[i] = gdk_atom_intern (drag_types_dest[i].target,
- FALSE);
- }
-
- for (i = 0; i < G_N_ELEMENTS (drag_types_source); ++i) {
- drag_atoms_source[i] = gdk_atom_intern (drag_types_source[i].target,
- FALSE);
- }
}
static void