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.
(cherry picked from commit
cafe15c743f6bc1a9e624939e1851f215645e4f2)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit
4c98c072ff0a7c0dc7778264d838a99b36369fd9)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
return last ? last : first;
} else {
data_len -= remain;
- if (!data_len)
+ if (data_len <= 0)
return last ? last : first;
}
}