From: Stephan Bosch Date: Sun, 15 Sep 2013 00:46:25 +0000 (+0300) Subject: lib-http: Improved display of invalid characters in parse error messages. X-Git-Tag: 2.2.6~78 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=101e78ae4d5705f196fba22db3261db042bfb3c2;p=thirdparty%2Fdovecot%2Fcore.git lib-http: Improved display of invalid characters in parse error messages. --- diff --git a/src/lib-http/http-request-parser.c b/src/lib-http/http-request-parser.c index a1a6b6fadf..3ca3f0cedb 100644 --- a/src/lib-http/http-request-parser.c +++ b/src/lib-http/http-request-parser.c @@ -96,8 +96,12 @@ static int http_request_parse_target(struct http_request_parser *parser) static inline const char *_chr_sanitize(unsigned char c) { if (c >= 0x20 && c < 0x7F) - return t_strdup_printf("'%c'", c); - return t_strdup_printf("0x%02x", c); + return t_strdup_printf("`%c'", c); + if (c == 0x0a) + return ""; + if (c == 0x0d) + return ""; + return t_strdup_printf("<0x%02x>", c); } static int http_request_parse(struct http_request_parser *parser, diff --git a/src/lib-http/http-response-parser.c b/src/lib-http/http-response-parser.c index db0a378839..c79fb4d44c 100644 --- a/src/lib-http/http-response-parser.c +++ b/src/lib-http/http-response-parser.c @@ -94,8 +94,12 @@ static int http_response_parse_reason(struct http_response_parser *parser) static inline const char *_chr_sanitize(unsigned char c) { if (c >= 0x20 && c < 0x7F) - return t_strdup_printf("'%c'", c); - return t_strdup_printf("0x%02x", c); + return t_strdup_printf("`%c'", c); + if (c == 0x0a) + return ""; + if (c == 0x0d) + return ""; + return t_strdup_printf("<0x%02x>", c); } static int http_response_parse(struct http_response_parser *parser,