diff options
author | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2010-05-26 15:23:00 +0400 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2010-05-26 15:23:00 +0400 |
commit | d608ddf90823ba1fb60bed510751fb219f440f0e (patch) | |
tree | bdaf44d986c2356d778a2e3a882d6b5abf6d0c68 /contrib | |
parent | 40104096312e987c4d7320eb35949b5bab66ddc2 (diff) | |
download | rspamd-d608ddf90823ba1fb60bed510751fb219f440f0e.tar.gz rspamd-d608ddf90823ba1fb60bed510751fb219f440f0e.zip |
* Fix issue with folding multiline headers (submitted by Anton Nekhoroshikh).
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/exim/local_scan.c | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/contrib/exim/local_scan.c b/contrib/exim/local_scan.c index 472e07598..cffe9de29 100644 --- a/contrib/exim/local_scan.c +++ b/contrib/exim/local_scan.c @@ -561,8 +561,11 @@ int WaitForScanResult (uschar **resStr) back = *tmp; *tmp = '\0'; if(smb>0) { - tok[0] = tok[1]= tok[2]= tok[3]= tok[4]= tok[5]= tok[6]= ' '; - symbols = string_sprintf ("%s\n%s", symbols, tok+5); + tok += 7; + while(*tok && isspace(*tok)) tok++; + if(strlen(tok)>0) { + symbols = string_sprintf ("%s\n %s", symbols, tok); + } } else { tok += 7; while(*tok && isspace(*tok)) tok++; @@ -604,20 +607,13 @@ int WaitForScanResult (uschar **resStr) header_del ((uschar *) "X-Spam-Sybmols"); header_add (' ', "%s: %s\n", "X-Spam-Sybmols", symbols); while(*tmp!='\0') { - if((*tmp == '\n') || (*tmp == '\r')) { - tmp++; - continue; - } - if ((*tmp == ' ') && (*(tmp+1)==' ')) { - tok[i++] = ','; - tmp += 2; - continue; - } - tok[i] = *tmp; - i++; + if(*tmp == '\r') + *tmp = ' '; + if(*tmp == '\n') + *tmp = ','; tmp++; } - tok[i] = '\0'; + *tmp = '\0'; log_write(0, LOG_MAIN, "rspam-exim: symbols: %s", tok); } |