From: Emeric Brun Date: Wed, 5 Jul 2017 11:33:16 +0000 (+0200) Subject: BUG/MAJOR: http: fix buffer overflow on loguri buffer. X-Git-Tag: v1.8-dev3~253 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=96fd926ccc61466caecf573aebad190dfd8b9a83;p=thirdparty%2Fhaproxy.git BUG/MAJOR: http: fix buffer overflow on loguri buffer. The pool used to log the uri was created with a size of 0 because the configuration and 'tune.http.logurilen' were parsed too earlier. The fix consist to postpone the pool_create as it is done for cookie captures. Regression introduced with 'MINOR: log: Add logurilen tunable' --- diff --git a/src/cfgparse.c b/src/cfgparse.c index 3706bca527..600f2737d5 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -7404,6 +7404,8 @@ int check_config_validity() if (!global.tune.requri_len) global.tune.requri_len = REQURI_LEN; + pool2_requri = create_pool("requri", global.tune.requri_len , MEM_F_SHARED); + pool2_capture = create_pool("capture", global.tune.cookie_len, MEM_F_SHARED); /* allocate pool of resolution per resolvers */ diff --git a/src/proto_http.c b/src/proto_http.c index 46cb6ffe22..7141833b0d 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -459,7 +459,6 @@ void init_proto_http() /* memory allocations */ pool2_http_txn = create_pool("http_txn", sizeof(struct http_txn), MEM_F_SHARED); - pool2_requri = create_pool("requri", global.tune.requri_len , MEM_F_SHARED); pool2_uniqueid = create_pool("uniqueid", UNIQUEID_LEN, MEM_F_SHARED); }