]> granicus.if.org Git - neomutt/commit
Fix memory leak when attaching messages
authorKevin McCarthy <kevin@8t8.us>
Mon, 2 Sep 2019 02:10:23 +0000 (19:10 -0700)
committerRichard Russon <rich@flatcap.org>
Tue, 1 Oct 2019 10:23:23 +0000 (11:23 +0100)
commit291b7d42c55d47bc51a751d0655925f750649c71
tree126b934f78c283e05452b231765bcc6d5416cbfd
parent7ffca22115e0e6896ad233b3881dca94ab1047f1
Fix memory leak when attaching messages

Setting actx->idx[]->content->parts to NULL causes a memory leak,
because message attachments store a BODY there that needs to be freed.

I looked through the various use cases of ci_send_message() and
actually believe content->parts will be NULL for all other cases
except message attachments.  From the comment added to
delete_attachment():

  Other ci_send_message() message constructors are careful to free
  any body->parts, removing depth:
   - mutt_prepare_template() used by postponed, resent, and draft files
   - mutt_copy_body() used by the recvattach menu and $forward_attachments.

  I believe it is safe to completely remove the "content->parts =
  NULL" statement.  But for safety, am doing so only for the case
  it must be avoided: message attachments.

Co-authored-by: Austin Ray <austin@austinray.io>
compose.c