]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MAJOR: buffers: fix get_buffer_nc() for data at end of buffer
authorWilly Tarreau <w@1wt.eu>
Thu, 2 Nov 2017 16:16:07 +0000 (17:16 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 2 Nov 2017 16:16:07 +0000 (17:16 +0100)
This function incorrectly dealt with the case where data doesn't
wrap but lies at the end of the buffer, resulting in Lukas' reported
data corruption with HTTP/2. No backport is needed, it was introduced
for HTTP/2 in 1.8-dev.

include/common/buffer.h

index f11d6a9621bfa9695d40c76522eaa148b09d7cd6..c6fb2fea5ebcdce4bf1be2e9040446f85f91d103 100644 (file)
@@ -543,7 +543,7 @@ static inline int bo_getblk_nc(struct buffer *buf, char **blk1, int *len1, char
                return 2;
        }
 
-       *blk1 = buf->p - buf->o;
+       *blk1 = bo_ptr(buf);
        *len1 = buf->o;
        return 1;
 }