mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-28 13:44:12 +01:00
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.
This commit is contained in:
parent
e60b44ecf8
commit
195361c8cd
1 changed files with 8 additions and 2 deletions
|
@ -244,8 +244,9 @@ format_headers_sprinter (sprinter_t *sp, GMimeMessage *message,
|
||||||
* reflected in the file devel/schemata. */
|
* reflected in the file devel/schemata. */
|
||||||
|
|
||||||
InternetAddressList *recipients;
|
InternetAddressList *recipients;
|
||||||
const char *recipients_string;
|
char *recipients_string;
|
||||||
const char *reply_to_string;
|
const char *reply_to_string;
|
||||||
|
char *date_string;
|
||||||
|
|
||||||
sp->begin_map (sp);
|
sp->begin_map (sp);
|
||||||
|
|
||||||
|
@ -260,6 +261,7 @@ format_headers_sprinter (sprinter_t *sp, GMimeMessage *message,
|
||||||
if (recipients_string) {
|
if (recipients_string) {
|
||||||
sp->map_key (sp, "To");
|
sp->map_key (sp, "To");
|
||||||
sp->string (sp, recipients_string);
|
sp->string (sp, recipients_string);
|
||||||
|
g_free (recipients_string);
|
||||||
}
|
}
|
||||||
|
|
||||||
recipients = g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_CC);
|
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) {
|
if (recipients_string) {
|
||||||
sp->map_key (sp, "Cc");
|
sp->map_key (sp, "Cc");
|
||||||
sp->string (sp, recipients_string);
|
sp->string (sp, recipients_string);
|
||||||
|
g_free (recipients_string);
|
||||||
}
|
}
|
||||||
|
|
||||||
recipients = g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_BCC);
|
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) {
|
if (recipients_string) {
|
||||||
sp->map_key (sp, "Bcc");
|
sp->map_key (sp, "Bcc");
|
||||||
sp->string (sp, recipients_string);
|
sp->string (sp, recipients_string);
|
||||||
|
g_free (recipients_string);
|
||||||
}
|
}
|
||||||
|
|
||||||
reply_to_string = g_mime_message_get_reply_to (message);
|
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"));
|
sp->string (sp, g_mime_object_get_header (GMIME_OBJECT (message), "References"));
|
||||||
} else {
|
} else {
|
||||||
sp->map_key (sp, "Date");
|
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);
|
sp->end (sp);
|
||||||
|
|
Loading…
Reference in a new issue