[BUG] buffers: wrong size calculation for displaced data
This error was triggered by requests not starting at the beginning
of the buffer. It cannot happen with earlier versions though it might
be a good idea to fix it anyway.
diff --git a/src/buffers.c b/src/buffers.c
index 939b03d..f9b5aa4 100644
--- a/src/buffers.c
+++ b/src/buffers.c
@@ -197,7 +197,7 @@
return 0; /* no space left */
/* first, protect the end of the buffer */
- memmove(end + delta, end, b->data + b->l - end);
+ memmove(end + delta, end, b->r - end);
/* now, copy str over pos */
memcpy(pos, str,len);
@@ -237,7 +237,7 @@
}
/* first, protect the end of the buffer */
- memmove(end + delta, end, b->data + b->l - end);
+ memmove(end + delta, end, b->r - end);
/* now, copy str over pos */
if (len)
@@ -278,7 +278,7 @@
return 0; /* no space left */
/* first, protect the end of the buffer */
- memmove(pos + delta, pos, b->data + b->l - pos);
+ memmove(pos + delta, pos, b->r - pos);
/* now, copy str over pos */
if (len && str) {