diff options
Diffstat (limited to 'pseudo_db.c')
-rw-r--r-- | pseudo_db.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/pseudo_db.c b/pseudo_db.c index ebbeb69..feda002 100644 --- a/pseudo_db.c +++ b/pseudo_db.c @@ -801,7 +801,7 @@ frag(buffer *b, char *fmt, ...) { va_start(ap, fmt); rc = vsnprintf(b->tail, b->buflen - curlen, fmt, ap); va_end(ap); - if (rc >= (b->buflen - curlen)) { + if ((rc > 0) && ((size_t) rc >= (b->buflen - curlen))) { size_t newlen = b->buflen; while (newlen <= (rc + curlen)) newlen *= 2; @@ -819,7 +819,7 @@ frag(buffer *b, char *fmt, ...) { va_start(ap, fmt); rc = vsnprintf(b->tail, b->buflen - curlen, fmt, ap); va_end(ap); - if (rc >= (b->buflen - curlen)) { + if ((rc > 0) && ((size_t) rc >= (b->buflen - curlen))) { pseudo_diag("tried to reallocate larger buffer, failed. giving up.\n"); return -1; } |