From 7704b1e89a202c5b09d89fbc50f042a18113a839 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 22 Dec 2017 16:32:43 +0100 Subject: [PATCH] BUG/MEDIUM: cache: do not try to retrieve host-less requests from the cache All HTTP/1.1 requests the Host header share the same hash key 0 and will be return the first cached object. Let's add the check on the call to sha1_hosturi() to prevent this from happening. This must be backported to 1.8. --- src/cache.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/cache.c b/src/cache.c index 459c2e8bf..371ce20ac 100644 --- a/src/cache.c +++ b/src/cache.c @@ -672,7 +672,8 @@ enum act_return http_action_req_cache_use(struct act_rule *rule, struct proxy *p struct cache_entry *res; struct cache *cache = (struct cache *)rule->arg.act.p[0]; - sha1_hosturi(s->txn); + if (!sha1_hosturi(s->txn)) + return ACT_RET_CONT; shctx_lock(shctx_ptr(cache)); res = entry_exist(cache, s->txn->cache_hash); -- 2.47.3