From: Willy Tarreau Date: Tue, 8 May 2012 06:54:15 +0000 (+0200) Subject: BUG/MINOR: http: error snapshots are wrong if buffer wraps X-Git-Tag: v1.5-dev9~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d6c2e8c9162452e5f192bdd92c7f241499c7117e;p=thirdparty%2Fhaproxy.git BUG/MINOR: http: error snapshots are wrong if buffer wraps Commit 81f2fb added support for wrapping buffer captures, but unfortunately the code used to perform two memcpy() over the same destination, causing a loss of the start of the buffer rendering some error snapshots unusable. This bug is present in 1.4 too and must be backported. --- diff --git a/src/proto_http.c b/src/proto_http.c index 2c1ff566cf..922ff61aba 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -7227,7 +7227,7 @@ void http_capture_bad_message(struct error_snapshot *es, struct session *s, es->len = bi_end(buf) - (buf->p + msg->som) + buf->size; memcpy(es->buf, buf->p + msg->som, MIN(len1, sizeof(es->buf))); if (es->len > len1 && len1 < sizeof(es->buf)) - memcpy(es->buf, buf->data, MIN(es->len, sizeof(es->buf)) - len1); + memcpy(es->buf + len1, buf->data, MIN(es->len, sizeof(es->buf)) - len1); } else { es->len = bi_end(buf) - (buf->p + msg->som);