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.
This commit is contained in:
Willy Tarreau 2017-12-22 16:32:43 +01:00
parent 0ad8e0dfea
commit 7704b1e89a

View File

@ -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);