mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-01-17 14:50:59 +01:00
BUG/MEDIUM: channel: bad unlikely macro
The unlikely macro doesn't take in acount the condition, but only one variable. Must be backported in 1.6 [wt: with gcc 3.x, unlikely(x) is defined as __builtin_expect((x) != 0, 0) so the condition is wrong for negative numbers, which correspond to the case where bi_getblk_nc() has reached the end of the buffer and the channel is already closed. With gcc 4.x, the output is cast to unsigned long so the <=0 will not match negative values either. This is only used in Lua for now so that may explain why it hasn't hit yet]
This commit is contained in:
parent
29cc11ca41
commit
500d11e65d
@ -441,7 +441,7 @@ int bi_getline_nc(struct channel *chn,
|
||||
int l;
|
||||
|
||||
retcode = bi_getblk_nc(chn, blk1, len1, blk2, len2);
|
||||
if (unlikely(retcode) <= 0)
|
||||
if (unlikely(retcode <= 0))
|
||||
return retcode;
|
||||
|
||||
for (l = 0; l < *len1 && (*blk1)[l] != '\n'; l++);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user