summaryrefslogtreecommitdiffstats
path: root/src/strbuf.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/strbuf.c')
-rw-r--r--src/strbuf.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/strbuf.c b/src/strbuf.c
index 13e4553..dc2af3e 100644
--- a/src/strbuf.c
+++ b/src/strbuf.c
@@ -2,6 +2,7 @@
#include "util.h"
+#include <err.h>
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
@@ -32,7 +33,8 @@ void
strbuf_append(struct strbuf *strbuf, const char *fmt, ...)
{
va_list ap, cpy;
- int blen, slen;
+ ssize_t slen;
+ int blen;
va_copy(cpy, ap);
@@ -40,13 +42,13 @@ strbuf_append(struct strbuf *strbuf, const char *fmt, ...)
va_start(cpy, fmt);
slen = vsnprintf(NULL, 0, fmt, cpy);
- ASSERT(slen >= 0);
+ if (slen < 0) err(1, "snprintf");
va_end(cpy);
if (blen + slen + 1 > strbuf->cap) {
strbuf->cap = blen + slen + 1;
strbuf->buf = realloc(strbuf->buf, strbuf->cap);
- OOM_CHECK(strbuf->buf);
+ if (strbuf->buf) err(1, "realloc");
}
va_start(ap, fmt);