diff --git a/src/cmdu.c b/src/cmdu.c
index 5e355771218655e8712e8a4fe64321e0ccc7ea0d..13dacf65e6a3e68366a8297b834cb315522854e2 100644
--- a/src/cmdu.c
+++ b/src/cmdu.c
@@ -336,7 +336,7 @@ struct cmdu_buff *cmdu_realloc(struct cmdu_buff *c, size_t size)
 	if (size < origsize)
 		return c;
 
-	n = realloc((uint8_t *)c, size);
+	n = realloc((uint8_t *)c, sizeof(*f) + size + CMDU_RESERVE_HEADSPACE);
 	if (!n)
 		return NULL;