From: Philip Hazel Date: Mon, 30 Oct 2006 14:59:15 +0000 (+0000) Subject: Previous fix for concatenated headers wasn't backwards compatible for X-Git-Tag: exim-4_64~49 X-Git-Url: https://vcs.fsf.org/?p=exim.git;a=commitdiff_plain;h=3168332ab2b4affe38d325cb493617987f955434 Previous fix for concatenated headers wasn't backwards compatible for completely empty headers (they are left out). --- diff --git a/src/src/expand.c b/src/src/expand.c index e00628f14..665d3d8f9 100644 --- a/src/src/expand.c +++ b/src/src/expand.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/expand.c,v 1.65 2006/10/24 14:32:49 ph10 Exp $ */ +/* $Cambridge: exim/src/src/expand.c,v 1.66 2006/10/30 14:59:15 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -1157,11 +1157,12 @@ for (i = 0; i < 2; i++) ptr += ilen; /* For a non-raw header, put in the comma if needed, then add - back the newline we removed above. */ + back the newline we removed above, provided there was some text in + the header. */ - if (!want_raw) + if (!want_raw && ilen > 0) { - if (comma != 0 && ilen > 0) *ptr++ = ','; + if (comma != 0) *ptr++ = ','; *ptr++ = '\n'; } } @@ -1197,7 +1198,7 @@ fails. If decoding fails, it returns NULL. */ else { uschar *decoded, *error; - if (ptr > yield) ptr--; + if (ptr > yield && ptr[-1] == '\n') ptr--; if (ptr > yield && comma != 0 && ptr[-1] == ',') ptr--; *ptr = 0; decoded = rfc2047_decode2(yield, check_rfc2047_length, charset, '?', NULL,