]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MEDIUM: checks: do not dereference head of a tcp-check at the end
authorWilly Tarreau <w@1wt.eu>
Wed, 13 May 2015 09:38:17 +0000 (11:38 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 13 May 2015 10:30:25 +0000 (12:30 +0200)
commit53c5a049e1f4dbf67412472e23690dc6b3c8d0f8
tree2e60a3b5f07bf5ecf570bb17d9fc12ca9b2fc8ff
parentce8c42a37a44a1e0cb94e81abb7cc2baf3d0ef80
BUG/MEDIUM: checks: do not dereference head of a tcp-check at the end

When the end of the list is reached, the current step's action is checked
to know if we must poll or not. Unfortunately, the main reason for going
there is that we walked past the end of list and current_step points to
the head. We cannot dereference ->action since it does not belong to this
structure and can definitely crash if the address is not mapped.

This bug is unlikely to cause a crash since the action appears just after
the list, and corresponds to the "char *check_req" pointer in the proxy
struct, and it seems that we can't go there with current_step being null.
At worst it can cause the check to register for recv events.

This fix needs to be backported to 1.5 since the code is incorrect there
as well.
src/checks.c