aboutsummaryrefslogtreecommitdiffstats
path: root/src/map.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map.c')
-rw-r--r--src/map.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/map.c b/src/map.c
index 6a96728e3..31a0569d9 100644
--- a/src/map.c
+++ b/src/map.c
@@ -235,10 +235,21 @@ read_http_chunked (u_char * buf, size_t len, struct rspamd_map *map, struct http
p = buf + (len - (data->chunk_read - data->chunk));
if (*p != '\r') {
- msg_info ("read_http_chunked: invalid chunked reply");
- return FALSE;
+ if (*p == '0') {
+ return TRUE;
+ }
+ else {
+ msg_info ("read_http_chunked: invalid chunked reply: %*s", len, buf);
+ return FALSE;
+ }
}
p += 2;
+ if (len == p - buf) {
+ /* Next chunk data is not available */
+ data->chunk = 0;
+ return TRUE;
+ }
+
len -= p - buf;
skip = read_chunk_header (p, len, data);
p += skip;