From f4711a32215b8141d0b4a014d5c6ab30a956def3 Mon Sep 17 00:00:00 2001 From: Emeric Brun Date: Fri, 29 Oct 2010 15:16:55 +0200 Subject: [PATCH] [MINOR] frontend: improve accept-proxy header parsing The accept-proxy now automatically fails as soon as a character does not match the expected syntax. --- src/frontend.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/frontend.c b/src/frontend.c index 9e7be10cc..348e999a0 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;