diff --git a/contrib/csnippets/utils/buffer.c b/contrib/csnippets/utils/buffer.c index 06646a0..627efdb 100644 --- a/contrib/csnippets/utils/buffer.c +++ b/contrib/csnippets/utils/buffer.c @@ -94,7 +94,8 @@ vbuf_append(struct vbuffer *restrict vbuf, const void *data, size_t n) } (void)memcpy(vbuf->data + vbuf->len, data, n); vbuf->len += n; - vbuf->data[vbuf->len] = '\0'; /* the reserved byte */ + /* null-byte is reserved by vbuf_alloc() */ + vbuf->data[vbuf->len] = '\0'; return vbuf; } @@ -110,6 +111,7 @@ vbuf_vappendf(struct vbuffer *restrict vbuf, const char *format, va_list args) va_list args0; va_copy(args0, args); + /* null-byte is reserved by vbuf_alloc() */ int ret = vsnprintf(b, maxlen + 1, format, args0); va_end(args0); if (ret <= 0) { diff --git a/contrib/csnippets/utils/buffer.h b/contrib/csnippets/utils/buffer.h index 609610a..8da021a 100644 --- a/contrib/csnippets/utils/buffer.h +++ b/contrib/csnippets/utils/buffer.h @@ -68,7 +68,7 @@ vbuf_alloc(struct vbuffer *restrict vbuf, const size_t cap) return NULL; } const size_t len = (vbuf != NULL) ? vbuf->len : 0; - /* with a null-byte */ + /* reserve 1 byte for null terminator */ struct vbuffer *restrict newbuf = realloc(vbuf, sizeof(struct vbuffer) + cap + 1); if (newbuf == NULL) {