]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MEDIUM: channel: Be aware of SHUTW_NOW flag when output data are peeked
authorChristopher Faulet <cfaulet@haproxy.com>
Thu, 16 Jul 2020 09:43:46 +0000 (11:43 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Fri, 17 Jul 2020 08:11:34 +0000 (10:11 +0200)
commitf706a794d8b8d854cba4414adb6f9a1297c6fd02
treef6433f626102a296a30adc9ea803075912c1484c
parent2d067f93fbbecc2b25bb0374a1cd2552299f19f0
BUG/MEDIUM: channel: Be aware of SHUTW_NOW flag when output data are peeked

The CF_SHUTW_NOW flag must be handled the same way than the CF_SHUTW flag in
co_getblk_nc() and co_getline_nc() functions. It is especally important when we
try to peek a line from outgoing data. In this case, an unfinished line is
blocked an nothing is peeked if the CF_SHUTW_NOW flag is set. But the blocked
data pevent the transition to CF_SHUTW.

The above functions are only used by LUA cosockets. Because of this bug, we may
experienced wakeups in loop of the cosocket's io handler if we try to read a
line on a closed socket with a pending unfinished line (no LF found at the end).

This patch should fix issue #744. It must be backported to all supported
versions.
src/channel.c