From 8f985b8241246b321db52b9f63d2e6a4a83d4707 Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Mon, 19 Feb 2018 13:20:11 +0100 Subject: [PATCH] lib-http: message parsers: Record beginning of parsed data. --- src/lib-http/http-message-parser.h | 2 +- src/lib-http/http-request-parser.c | 4 ++-- src/lib-http/http-response-parser.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib-http/http-message-parser.h b/src/lib-http/http-message-parser.h index 3675319bb5..17c17cb2b5 100644 --- a/src/lib-http/http-message-parser.h +++ b/src/lib-http/http-message-parser.h @@ -47,7 +47,7 @@ struct http_message_parser { uoff_t max_payload_size; enum http_message_parse_flags flags; - const unsigned char *cur, *end; + const unsigned char *begin, *cur, *end; const char *error; enum http_message_parse_error error_code; diff --git a/src/lib-http/http-request-parser.c b/src/lib-http/http-request-parser.c index 52d3213ee1..226eb709ec 100644 --- a/src/lib-http/http-request-parser.c +++ b/src/lib-http/http-request-parser.c @@ -292,8 +292,8 @@ static int http_request_parse_request_line(struct http_request_parser *parser, while ((ret = i_stream_read_bytes(_parser->input, &begin, &size, old_bytes + 1)) > 0) { - _parser->cur = begin; - _parser->end = _parser->cur + size; + _parser->begin = _parser->cur = begin; + _parser->end = _parser->begin + size; if ((ret = http_request_parse(parser, pool)) < 0) return -1; diff --git a/src/lib-http/http-response-parser.c b/src/lib-http/http-response-parser.c index 209a18a7cd..959afdbdb0 100644 --- a/src/lib-http/http-response-parser.c +++ b/src/lib-http/http-response-parser.c @@ -244,8 +244,8 @@ http_response_parse_status_line(struct http_response_parser *parser) while ((ret = i_stream_read_bytes(_parser->input, &begin, &size, old_bytes + 1)) > 0) { - _parser->cur = begin; - _parser->end = _parser->cur + size; + _parser->begin = _parser->cur = begin; + _parser->end = _parser->begin + size; if ((ret = http_response_parse(parser)) < 0) return -1;