Fixed two memory leaks around procheader_get_one_field().
authorAndrej Kacian <ticho@claws-mail.org>
Sun, 16 Jul 2017 17:22:23 +0000 (19:22 +0200)
committerAndrej Kacian <ticho@claws-mail.org>
Sun, 16 Jul 2017 17:22:23 +0000 (19:22 +0200)
src/procheader.c
src/procmsg.c

index 327774009370f6d0200eb76cde399b4049eb7fc5..6d5132d5a731c43642c4e8a9a3b4a2d9c8b27ee2 100644 (file)
@@ -574,8 +574,11 @@ static MsgInfo *parse_stream(void *data, gboolean isstring, MsgFlags flags,
                        if ((!strncmp(buf, "X-Claws-End-Special-Headers: 1",
                                strlen("X-Claws-End-Special-Headers:"))) ||
                            (!strncmp(buf, "X-Sylpheed-End-Special-Headers: 1",
-                               strlen("X-Sylpheed-End-Special-Headers:"))))
+                               strlen("X-Sylpheed-End-Special-Headers:")))) {
+                               g_free(buf);
+                               buf = NULL;
                                break;
+                       }
                        /* from other mailers */
                        if (!strncmp(buf, "Date: ", 6)
                        ||  !strncmp(buf, "To: ", 4)
index c9b077eb1a90d02ffc4b532a76d929a01bedbcd5..3137f5fc8b2a9758f1a25f171e507055dd278ba1 100644 (file)
@@ -1604,10 +1604,11 @@ static gint procmsg_send_message_queue_full(const gchar *file, gboolean keep_ses
                case Q_CLAWS_HDRS:
                case Q_CLAWS_HDRS_OLD:
                        /* end of special headers reached */
+                       g_free(buf);
                        goto send_mail; /* can't "break;break;" */
                }
+               g_free(buf);
        }
-       g_free(buf);
 
 send_mail:
        filepos = ftell(fp);