eion/purple-hangouts

Fix some easy leaks
draft
2018-02-18, dx
c87cdb027d36
Parents 481a6792f4d3
Children f3ad124b413d
Fix some easy leaks

There are some hard ones in hangouts_pblite.c. Apparently back in sep 2016 I
tried to fix those and got invalid reads elsewhere and left the valgrind output
as a warning there.
--- a/hangouts_conversation.c Tue Feb 06 11:20:40 2018 +1300
+++ b/hangouts_conversation.c Sun Feb 18 02:49:15 2018 -0300
@@ -1481,6 +1481,8 @@
hangouts_free_segments(segments);
hangouts_request_header_free(request.request_header);
hangouts_event_request_header_free(request.event_request_header);
+
+ g_free(message_dup);
return 1;
}
--- a/hangouts_events.c Tue Feb 06 11:20:40 2018 +1300
+++ b/hangouts_events.c Sun Feb 18 02:49:15 2018 -0300
@@ -184,6 +184,7 @@
gchar *subject;
gchar *from;
gchar *to;
+ gchar *json_dump;
guint i;
gboolean is_unread = FALSE;
gboolean is_inbox = FALSE;
@@ -207,12 +208,14 @@
from = purple_markup_escape_text(msg->sender_name, -1);
to = purple_markup_escape_text(username, -1);
- purple_debug_info("hangouts", "Received gmail notification %s\n", pblite_dump_json((ProtobufCMessage *) msg));
+ json_dump = pblite_dump_json((ProtobufCMessage *) msg);
+ purple_debug_info("hangouts", "Received gmail notification %s\n", json_dump);
url = g_strconcat("https://mail.google.com/mail/u/", username, "/#inbox/", purple_url_encode(msg->thread_id), NULL);
purple_notify_email(pc, subject, from, to, url, NULL, NULL);
+ g_free(json_dump);
g_free(url);
g_free(subject);
g_free(from);
@@ -222,6 +225,8 @@
void
hangouts_received_other_notification(PurpleConnection *pc, StateUpdate *state_update)
{
+ gchar *json_dump;
+
if (state_update->typing_notification != NULL ||
state_update->presence_notification != NULL ||
state_update->event_notification != NULL ||
@@ -230,7 +235,10 @@
}
purple_debug_info("hangouts", "Received new other event %p\n", state_update);
- purple_debug_info("hangouts", "%s\n", pblite_dump_json((ProtobufCMessage *)state_update));
+ json_dump = pblite_dump_json((ProtobufCMessage *)state_update);
+ purple_debug_info("hangouts", "%s\n", json_dump);
+
+ g_free(json_dump);
}
/* "conversation" : {