From: Christopher Faulet Date: Mon, 26 Feb 2018 09:47:03 +0000 (+0100) Subject: BUG/MEDIUM: buffer: Fix the wrapping case in bo_putblk X-Git-Tag: v1.9-dev1~403 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b2b279464c5c0f3dfadf02333e06eb0ae8ae8793;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: buffer: Fix the wrapping case in bo_putblk When the block of data need to be split to support the wrapping, the start of the second block of data was wrong. We must be sure to skip data copied during the first memcpy. This patch must be backported to 1.8, 1.7, 1.6 and 1.5. --- diff --git a/include/common/buffer.h b/include/common/buffer.h index c920298368..4adfdc6471 100644 --- a/include/common/buffer.h +++ b/include/common/buffer.h @@ -468,7 +468,7 @@ static inline int bo_putblk(struct buffer *b, const char *blk, int len) memcpy(b->p, blk, half); b->p = b_ptr(b, half); if (len > half) { - memcpy(b->p, blk, len - half); + memcpy(b->p, blk + half, len - half); b->p = b_ptr(b, half); } b->o += len;