BUG/MEDIUM: htx/cache: use the correct class of error codes on abort

The HTX-specific cache code uses HTX_CACHE_* states which overlap with
the legacy HTTP states. A typo in the error handling made the state
become HTTP_CACHE_END, which equals 3 and is the value for HTX_CACHE_EOD,
which explains why we were seeing a transition to trailers and memory
corruption.

no backport needed.
This commit is contained in:
Willy Tarreau 2018-12-16 00:35:15 +01:00
parent 746fb772f1
commit 273e964f6e

View File

@ -962,7 +962,7 @@ static void htx_cache_io_handler(struct appctx *appctx)
}
if (res->flags & (CF_SHUTW|CF_SHUTW_NOW))
appctx->st0 = HTTP_CACHE_END;
appctx->st0 = HTX_CACHE_END;
if (appctx->st0 == HTX_CACHE_INIT) {
appctx->ctx.cache.next = block_ptr(cache_ptr);