From: Emeric Brun Date: Fri, 29 Oct 2010 13:16:55 +0000 (+0200) Subject: [MINOR] frontend: improve accept-proxy header parsing X-Git-Tag: v1.5-dev8~415 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f4711a32215b8141d0b4a014d5c6ab30a956def3;p=thirdparty%2Fhaproxy.git [MINOR] frontend: improve accept-proxy header parsing The accept-proxy now automatically fails as soon as a character does not match the expected syntax. --- diff --git a/src/frontend.c b/src/frontend.c index 9e7be10cc5..348e999a0e 100644 --- a/src/frontend.c +++ b/src/frontend.c @@ -287,13 +287,17 @@ int frontend_decode_proxy_request(struct session *s, struct buffer *req, int an_ if (req->flags & (BF_READ_ERROR|BF_READ_TIMEOUT)) goto fail; - if (req->l < 18) /* shortest possible line */ + len = MIN(req->l, 6); + if (!len) goto missing; - /* Decode a possible proxy request */ - if (memcmp(line, "PROXY ", 6) != 0) + /* Decode a possible proxy request, fail early if it does not match */ + if (strncmp(line, "PROXY ", len) != 0) goto fail; + line += 6; + if (req->l < 18) /* shortest possible line */ + goto missing; if (memcmp(line, "TCP4 ", 5) != 0) goto fail;