]> granicus.if.org Git - neomutt/commitdiff
imap: fix memory leak
authorMehdi Abaakouk <sileht@sileht.net>
Fri, 15 Sep 2017 17:44:26 +0000 (19:44 +0200)
committerRichard Russon <rich@flatcap.org>
Tue, 3 Oct 2017 12:47:30 +0000 (13:47 +0100)
In imap_commit_message_tags() cmd is not freed in case of error.

imap/imap.c

index 8b719bbc82c4560722b569be42ababc2433057cb..75cf15202b1a0dd3b9d2fc3eff2bd5494223b27e 100644 (file)
@@ -1392,7 +1392,10 @@ static int imap_commit_message_tags(struct Context *ctx, struct Header *h, char
      * continue to add new keywords *
      */
     if (imap_exec(idata, cmd->data, 0) != 0)
+    {
+      mutt_buffer_free(&cmd);
       return -1;
+    }
 
     mutt_buffer_free(&cmd);
   }
@@ -1415,6 +1418,7 @@ static int imap_commit_message_tags(struct Context *ctx, struct Header *h, char
     if (imap_exec(idata, cmd->data, 0) != 0)
     {
       mutt_debug(1, "imap_commit_message_tags: fail to add new keywords\n");
+      mutt_buffer_free(&cmd);
       return -1;
     }