diff --git a/buffer.c b/buffer.c
index 01af0ddc797f8fbf4f1f6a55359c5eb8c5b28285..2b35f7248bebe6f3ef8af2827a9bf4861d9cde04 100644
--- a/buffer.c
+++ b/buffer.c
@@ -99,7 +99,9 @@ buffer* buf_newcopy(buffer* buf) {
 
 	ret = buf_new(buf->len);
 	ret->len = buf->len;
-	memcpy(ret->data, buf->data, buf->len);
+	if (buf->len > 0) {
+	    memcpy(ret->data, buf->data, buf->len);
+	}
 	return ret;
 }