[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) {