MINOR: buffers: make buffer_pointer() support negative pointers too

It's more handy if the buffer_pointer() function also handles negative pointers.
diff --git a/include/proto/buffers.h b/include/proto/buffers.h
index 0a2da34..0d395a0 100644
--- a/include/proto/buffers.h
+++ b/include/proto/buffers.h
@@ -186,12 +186,14 @@
 /* Normalizes a pointer which is supposed to be relative to the beginning of a
  * buffer, so that wrapping is correctly handled. The intent is to use this
  * when increasing a pointer. Note that the wrapping test is only performed
- * once, so the original pointer must be between ->data and ->data+2*size - 1,
+ * once, so the original pointer must be between ->data-size and ->data+2*size-1,
  * otherwise an invalid pointer might be returned.
  */
 static inline char *buffer_pointer(const struct buffer *buf, char *ptr)
 {
-	if (ptr - buf->size >= buf->data)
+	if (ptr < buf->data)
+		ptr += buf->size;
+	else if (ptr - buf->size >= buf->data)
 		ptr -= buf->size;
 	return ptr;
 }