BUG/MAJOR: fd: switch temp values to uint in fd_stop_both()
authorWilly Tarreau <w@1wt.eu>
Wed, 7 Apr 2021 18:46:26 +0000 (20:46 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 7 Apr 2021 18:46:26 +0000 (20:46 +0200)
commit1197459e0ab79487032b61abda6bb6b5d7f6a85a
tree46b2e4aea7e80f9d678560c588e5a1914dfac7cc
parent8daf8dceb9527d6515dd24e132a935a63feb08be
BUG/MAJOR: fd: switch temp values to uint in fd_stop_both()

With latest commit f50906519 ("MEDIUM: fd: merge fdtab[].ev and state
for FD_EV_* and FD_POLL_* into state") one occurrence of a pair of
chars was missed in fd_stop_both(), resulting in the operation to
fail if the upper flags were set. Interestingly it managed to fail
2 tests in all setups in the CI while all used to work fine on my
local machines. Probably that the reason is that the chars had enough
room above them for the CAS to fail then refill "old" overwriting the
upper parts of the stack, and that thanks to this the subsequent tests
worked. With ASAN being used on lots of tests, it very likely caught
it but used to only report failed tests with no more info.

No backport is needed, as this was never released nor backported.
include/haproxy/fd.h