pidgin/pidgin

Fix some leaks.

2020-08-16, Elliott Sales de Andrade
30d9cbf04922
Parents 6d79c7cf9699
Children 726fae68fdac
Fix some leaks.

Also, expand `g_ascii_dtostr` buffers to `G_ASCII_DTOSTR_BUF_SIZE`.

This is the size it's guaranteed to be under, so might as well have it be that size. It not too much bigger than the existing choice anyway.

Testing Done:
Compile only.

Reviewed at https://reviews.imfreedom.org/r/71/
--- a/finch/gntxfer.c Sun Aug 16 03:30:06 2020 -0500
+++ b/finch/gntxfer.c Sun Aug 16 18:58:39 2020 -0500
@@ -376,7 +376,7 @@
PurpleGntXferUiData *data;
char *size_str, *remaining_str;
gint64 current_time;
- char prog_str[5];
+ char prog_str[G_ASCII_DTOSTR_BUF_SIZE];
double kb_sent;
double kbps = 0.0;
gint64 now;
@@ -416,7 +416,7 @@
kbsec = g_strdup_printf(_("%.2f KB/s"), kbps);
gnt_tree_change_text(GNT_TREE(xfer_dialog->tree), xfer, COLUMN_PROGRESS,
- g_ascii_dtostr(prog_str, sizeof(prog_str), purple_xfer_get_progress(xfer) * 100.));
+ g_ascii_dtostr(prog_str, G_ASCII_DTOSTR_BUF_SIZE, purple_xfer_get_progress(xfer) * 100.));
gnt_tree_change_text(GNT_TREE(xfer_dialog->tree), xfer, COLUMN_SIZE, size_str);
gnt_tree_change_text(GNT_TREE(xfer_dialog->tree), xfer, COLUMN_REMAINING, remaining_str);
gnt_tree_change_text(GNT_TREE(xfer_dialog->tree), xfer, COLUMN_SPEED, kbsec);
--- a/libpurple/plugins/codeinline.c Sun Aug 16 03:30:06 2020 -0500
+++ b/libpurple/plugins/codeinline.c Sun Aug 16 18:58:39 2020 -0500
@@ -36,7 +36,9 @@
ms = g_strsplit(m, "</u>", -1);
g_free(m);
- return g_strjoinv("</font>", ms);
+ m = g_strjoinv("</font>", ms);
+ g_strfreev(ms);
+ return m;
}
static gboolean outgoing_msg_cb1(PurpleConversation *conv, PurpleMessage *msg,
--- a/libpurple/protocols/gg/pubdir-prpl.c Sun Aug 16 03:30:06 2020 -0500
+++ b/libpurple/protocols/gg/pubdir-prpl.c Sun Aug 16 18:58:39 2020 -0500
@@ -799,7 +799,6 @@
name = g_uri_escape_string(record->first_name, NULL, FALSE);
surname = g_uri_escape_string(record->last_name, NULL, FALSE);
city = g_uri_escape_string(record->city, NULL, FALSE);
-
bday = g_date_time_format(record->birth, "%Y-%m-%d");
request_data = g_strdup_printf(
@@ -817,6 +816,9 @@
city,
record->province);
+ g_free(name);
+ g_free(surname);
+ g_free(city);
g_free(bday);
if (purple_debug_is_verbose() && purple_debug_is_unsafe()) {
--- a/libpurple/protocols/jabber/google/google_session.c Sun Aug 16 03:30:06 2020 -0500
+++ b/libpurple/protocols/jabber/google/google_session.c Sun Aug 16 18:58:39 2020 -0500
@@ -99,7 +99,7 @@
for (iter = candidates; iter; iter = iter->next) {
JabberIq *iq;
gchar *ip, *port, *username, *password;
- gchar pref[16];
+ gchar pref[G_ASCII_DTOSTR_BUF_SIZE];
PurpleMediaCandidateType type;
PurpleXmlNode *sess;
PurpleXmlNode *candidate;
@@ -118,7 +118,7 @@
ip = purple_media_candidate_get_ip(transport);
port = g_strdup_printf("%d",
purple_media_candidate_get_port(transport));
- g_ascii_dtostr(pref, 16,
+ g_ascii_dtostr(pref, G_ASCII_DTOSTR_BUF_SIZE,
purple_media_candidate_get_priority(transport) / 1000.0);
username = purple_media_candidate_get_username(transport);
password = purple_media_candidate_get_password(transport);
--- a/libpurple/protocols/zephyr/zephyr.c Sun Aug 16 03:30:06 2020 -0500
+++ b/libpurple/protocols/zephyr/zephyr.c Sun Aug 16 18:58:39 2020 -0500
@@ -1932,7 +1932,7 @@
g_free(zclass);
g_free(zinst);
g_free(zrecip);
- g_free(triple);
+ g_strfreev(triple);
s = s->next;
}
g_free(fname);
--- a/pidgin/gtksmiley-manager.c Sun Aug 16 03:30:06 2020 -0500
+++ b/pidgin/gtksmiley-manager.c Sun Aug 16 18:58:39 2020 -0500
@@ -494,10 +494,12 @@
purple_debug_warning("gtksmiley-manager",
"dropped file does not exists");
gtk_drag_finish(dc, FALSE, FALSE, time);
+ g_free(filename);
return;
}
image = purple_image_new_from_file(filename, NULL);
+ g_free(filename);
if (!image) {
purple_debug_warning("gtksmiley-manager",
"dropped file is not a valid image");