diff --git a/mongoose.c b/mongoose.c
index 9622b032c9d4a7da7a2a6bfafe94eccbd7b9644a..d9fdc2499ee1d4671fae06584e9a9fb4f7ca4f1b 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -10238,13 +10238,13 @@ int asprintf(char **strp, const char *fmt, ...) {
   va_end(ap);
 
   if (len > 0) {
-    *strp = realloc(*strp, len);
+    *strp = realloc(*strp, len + 1);
     if (*strp == NULL) return -1;
   }
 
   if (len >= BUFSIZ) {
     va_start(ap, fmt);
-    len = vsnprintf(*strp, len, fmt, ap);
+    len = vsnprintf(*strp, len + 1, fmt, ap);
     va_end(ap);
   }