From: Vsevolod Stakhov Date: Sat, 21 Jul 2018 11:10:21 +0000 (+0100) Subject: [Minor] Relax requirements to find end-of-headers X-Git-Tag: 1.7.9~69 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e591dcd91f5e6d1d3519e6e458427f1c649d4894;p=rspamd.git [Minor] Relax requirements to find end-of-headers Issue: #2349 --- diff --git a/src/libutil/str_util.c b/src/libutil/str_util.c index d17485ebf..4cdae61d4 100644 --- a/src/libutil/str_util.c +++ b/src/libutil/str_util.c @@ -1455,6 +1455,10 @@ rspamd_string_find_eoh (GString *input, goffset *body_start) p++; state = got_lf; } + else if (g_ascii_isspace (*p)) { + /* We have \r*, allow to stay in this state */ + p ++; + } else { p++; state = skip_char; @@ -1471,6 +1475,10 @@ rspamd_string_find_eoh (GString *input, goffset *body_start) else if (*p == '\r') { state = got_linebreak; } + else if (g_ascii_isspace (*p)) { + /* We have \n*, allow to stay in this state */ + p ++; + } else { p++; state = skip_char; @@ -1487,6 +1495,10 @@ rspamd_string_find_eoh (GString *input, goffset *body_start) p++; state = got_linebreak_lf; } + else if (g_ascii_isspace (*p)) { + /* We have *, allow to stay in this state */ + p ++; + } else { p++; state = skip_char; @@ -1502,6 +1514,10 @@ rspamd_string_find_eoh (GString *input, goffset *body_start) state = got_linebreak_lf; p++; } + else if (g_ascii_isspace (*p)) { + /* We have \r\n*, allow to keep in this state */ + p ++; + } else { p++; state = skip_char;