From: Willy Tarreau Date: Fri, 19 Nov 2021 16:42:49 +0000 (+0100) Subject: BUG/MINOR: shctx: do not look for available blocks when the first one is enough X-Git-Tag: v2.5-dev15~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cafe15c743f6bc1a9e624939e1851f215645e4f2;p=thirdparty%2Fhaproxy.git BUG/MINOR: shctx: do not look for available blocks when the first one is enough In shctx_row_reserve_hot() we only leave if we've found the exact requested size instead of at least as large, as is documented. This results in extra lookups and free calls in the avail loop while it is not needed, and participates to seeing a negative data_len early as spotted in previous bugs. It doesn't seem to have any other impact however, but it's better to backport it to stable branches. --- diff --git a/src/shctx.c b/src/shctx.c index 7567645a18..f675d81420 100644 --- a/src/shctx.c +++ b/src/shctx.c @@ -61,7 +61,7 @@ struct shared_block *shctx_row_reserve_hot(struct shared_context *shctx, return last ? last : first; } else { data_len -= remain; - if (!data_len) + if (data_len <= 0) return last ? last : first; } }