smtp_do_bounce(): don't loose msg['A'] when overwriting its content.
authorWilfried Goesgens <dothebart@citadel.org>
Mon, 15 Nov 2010 11:41:55 +0000 (12:41 +0100)
committerWilfried Goesgens <dothebart@citadel.org>
Mon, 15 Nov 2010 19:01:19 +0000 (20:01 +0100)
citadel/modules/smtp/serv_smtp.c

index 159d36914e57bfe71aaa06900957c55e1b36887b..30f46a648057587fd0c2234a1cbae64e08854564 100644 (file)
@@ -1478,6 +1478,8 @@ void smtp_do_bounce(char *instr) {
         StrBufAppendBufPlain(BounceMB, HKEY("--"), 0);
        StrBufAppendBuf(BounceMB, boundary, 0);
        StrBufAppendBufPlain(BounceMB, HKEY("--\r\n"), 0);
+       if (bmsg->cm_fields['A'] != NULL)
+               free(bmsg->cm_fields['A']);
        bmsg->cm_fields['A'] = SmashStrBuf(&BounceMB);
        /* Deliver the bounce if there's anything worth mentioning */
        CtdlLogPrintf(CTDL_DEBUG, "num_bounces = %d\n", num_bounces);