From: Tobias Stoeckmann Date: Sun, 27 Feb 2022 20:45:28 +0000 (+0100) Subject: sprintbuf(): test for all vsnprintf error values X-Git-Tag: json-c-0.16-20220414~12^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F748%2Fhead;p=thirdparty%2Fjson-c.git sprintbuf(): test for all vsnprintf error values The POSIX specification states that vsnprintf returns "a negative value" in case of error, but the code checks explicitly only for -1. --- diff --git a/printbuf.c b/printbuf.c index 00822fac..fd4a5d94 100644 --- a/printbuf.c +++ b/printbuf.c @@ -143,7 +143,7 @@ int sprintbuf(struct printbuf *p, const char *msg, ...) * if output is truncated whereas some return the number of bytes that * would have been written - this code handles both cases. */ - if (size == -1 || size > 127) + if (size < 0 || size > 127) { va_start(ap, msg); if ((size = vasprintf(&t, msg, ap)) < 0)