aboutsummaryrefslogtreecommitdiff
path: root/notmuch-show.c
diff options
context:
space:
mode:
authorJeffrey Stedfast <jestedfa@microsoft.com>2017-03-16 16:53:47 +0000
committerDavid Bremner <david@tethera.net>2017-03-18 20:55:15 -0300
commit195361c8cd100005e6562f54ccab15cb98cb20fd (patch)
treebfe67709843e54ecf9cc41768c829d96de0d6caf /notmuch-show.c
parente60b44ecf8bd5934959727496c7ef3016ff80cf6 (diff)
fix memory leaks in notmuch-show.c:format_headers_sprinter()
Internet_address_list_to_string() and g_mime_message_get_date_as_string() return allocated string buffers and not const, so from what I can tell from taking a look at the sprinter-sexp.c’s sexp_string() function, the code leaks the recipients_string as well as the date string.
Diffstat (limited to 'notmuch-show.c')
-rw-r--r--notmuch-show.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/notmuch-show.c b/notmuch-show.c
index 744b6272..2dbf8704 100644
--- a/notmuch-show.c
+++ b/notmuch-show.c
@@ -244,8 +244,9 @@ format_headers_sprinter (sprinter_t *sp, GMimeMessage *message,
* reflected in the file devel/schemata. */
InternetAddressList *recipients;
- const char *recipients_string;
+ char *recipients_string;
const char *reply_to_string;
+ char *date_string;
sp->begin_map (sp);
@@ -260,6 +261,7 @@ format_headers_sprinter (sprinter_t *sp, GMimeMessage *message,
if (recipients_string) {
sp->map_key (sp, "To");
sp->string (sp, recipients_string);
+ g_free (recipients_string);
}
recipients = g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_CC);
@@ -267,6 +269,7 @@ format_headers_sprinter (sprinter_t *sp, GMimeMessage *message,
if (recipients_string) {
sp->map_key (sp, "Cc");
sp->string (sp, recipients_string);
+ g_free (recipients_string);
}
recipients = g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_BCC);
@@ -274,6 +277,7 @@ format_headers_sprinter (sprinter_t *sp, GMimeMessage *message,
if (recipients_string) {
sp->map_key (sp, "Bcc");
sp->string (sp, recipients_string);
+ g_free (recipients_string);
}
reply_to_string = g_mime_message_get_reply_to (message);
@@ -290,7 +294,9 @@ format_headers_sprinter (sprinter_t *sp, GMimeMessage *message,
sp->string (sp, g_mime_object_get_header (GMIME_OBJECT (message), "References"));
} else {
sp->map_key (sp, "Date");
- sp->string (sp, g_mime_message_get_date_as_string (message));
+ date_string = g_mime_message_get_date_as_string (message);
+ sp->string (sp, date_string);
+ g_free (date_string);
}
sp->end (sp);