From: Wilfried Goesgens Date: Tue, 29 Oct 2013 20:45:13 +0000 (+0100) Subject: correctly unfold RFC822 Headers and find the right end of the string. X-Git-Tag: v9.01~203 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=ca4d25b9bd7c3038c5421cdae705c51f68657351 correctly unfold RFC822 Headers and find the right end of the string. --- diff --git a/citadel/internet_addressing.c b/citadel/internet_addressing.c index 507347307..907d0eaac 100644 --- a/citadel/internet_addressing.c +++ b/citadel/internet_addressing.c @@ -989,11 +989,17 @@ void unfold_rfc822_field(char **field, char **FieldEnd) sField < pFieldEnd; pField++, sField++) { - if ((*sField=='\r') || (*sField=='\n')) { - sField++; - if (*sField == '\n') - sField++; - *pField = *sField; + if ((*sField=='\r') || (*sField=='\n')) + { + int offset = 1; + + if (*(sField+1) == '\n') + offset++; + + if (sField + offset == pFieldEnd) + break; + + *pField = *sField + offset; } else { if (*sField=='\"') quote = 1 - quote;