diff options
| author | Jeffrey Stedfast <jestedfa@microsoft.com> | 2017-03-16 16:53:47 +0000 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2017-03-18 20:55:15 -0300 |
| commit | 195361c8cd100005e6562f54ccab15cb98cb20fd (patch) | |
| tree | bfe67709843e54ecf9cc41768c829d96de0d6caf /notmuch-show.c | |
| parent | e60b44ecf8bd5934959727496c7ef3016ff80cf6 (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.c | 10 |
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); |
