summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElliott Sales de Andrade <qulogic@pidgin.im>2019-03-12 21:21:57 -0400
committerElliott Sales de Andrade <qulogic@pidgin.im>2019-03-12 21:21:57 -0400
commit47512cd35c27a91b973f39efb778c023aa4a2857 (patch)
tree227989f4b570a67a953f79cfcd0f7cf0998d7d97
parentf3924646b743bc43882c51b2a469e6769a1084d0 (diff)
downloadpidgin-47512cd35c27a91b973f39efb778c023aa4a2857.tar.gz
Fix leaky calls to purple_image_new_from_data.
It makes a copy itself; no need to do that before calling it.
-rw-r--r--libpurple/protocols/jabber/buddy.c2
-rw-r--r--libpurple/protocols/oscar/odc.c2
-rw-r--r--pidgin/gtkaccount.c2
-rw-r--r--pidgin/gtksmiley-manager.c3
4 files changed, 4 insertions, 5 deletions
diff --git a/libpurple/protocols/jabber/buddy.c b/libpurple/protocols/jabber/buddy.c
index 28a0c4f140..88887ad41f 100644
--- a/libpurple/protocols/jabber/buddy.c
+++ b/libpurple/protocols/jabber/buddy.c
@@ -1208,7 +1208,7 @@ static void jabber_vcard_parse(JabberStream *js, const char *from,
char *img_text;
char *hash;
- img = purple_image_new_from_data(g_memdup(data, size), size);
+ img = purple_image_new_from_data(data, size);
img_id = purple_image_store_add(img);
jbi->vcard_images = g_slist_prepend(jbi->vcard_images, img);
diff --git a/libpurple/protocols/oscar/odc.c b/libpurple/protocols/oscar/odc.c
index af81c4e8b4..4e30564a30 100644
--- a/libpurple/protocols/oscar/odc.c
+++ b/libpurple/protocols/oscar/odc.c
@@ -355,7 +355,7 @@ peer_odc_handle_payload(PeerConnection *conn, const char *msg, size_t len, int e
if ((embedded_data != NULL) && (embedded_data->size == size))
{
image = purple_image_new_from_data(
- g_memdup(embedded_data->data, size),
+ embedded_data->data,
size);
purple_image_set_friendly_filename(image, src);
}
diff --git a/pidgin/gtkaccount.c b/pidgin/gtkaccount.c
index b45af7e8da..70dac951f9 100644
--- a/pidgin/gtkaccount.c
+++ b/pidgin/gtkaccount.c
@@ -188,7 +188,7 @@ set_dialog_icon(AccountPrefsDialog *dialog, gpointer data, size_t len, gchar *ne
g_free(data);
} else if (data != NULL) {
if (len > 0)
- dialog->icon_img = purple_image_new_from_data(data, len);
+ dialog->icon_img = purple_image_new_take_data(data, len);
else
g_free(data);
}
diff --git a/pidgin/gtksmiley-manager.c b/pidgin/gtksmiley-manager.c
index b54bec700d..78bdaff09a 100644
--- a/pidgin/gtksmiley-manager.c
+++ b/pidgin/gtksmiley-manager.c
@@ -452,8 +452,7 @@ smiley_list_dnd_url_got(PurpleHttpConnection *http_conn,
return;
image_data = purple_http_response_get_data(response, &image_size);
- image = purple_image_new_from_data(g_memdup(image_data, image_size),
- image_size);
+ image = purple_image_new_from_data((const guint8 *)image_data, image_size);
if (!image)
return;