From: Petr Štetiar Date: Tue, 14 Jan 2020 07:57:05 +0000 (+0100) Subject: blobmsg: blobmsg_vprintf: prefer vsnprintf X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=132ecb563da794f390209c20f94d4798839dc709;p=oweals%2Flibubox.git blobmsg: blobmsg_vprintf: prefer vsnprintf Better safe than sorry and while at it add handling of possible *printf() failures. Reviewed-by: Jo-Philipp Wich Signed-off-by: Petr Štetiar --- diff --git a/blobmsg.c b/blobmsg.c index 1dd57e1..3e34821 100644 --- a/blobmsg.c +++ b/blobmsg.c @@ -290,10 +290,17 @@ int blobmsg_vprintf(struct blob_buf *buf, const char *name, const char *format, len = vsnprintf(&cbuf, sizeof(cbuf), format, arg2); va_end(arg2); + if (len < 0) + return -1; + sbuf = blobmsg_alloc_string_buffer(buf, name, len + 1); if (!sbuf) return -1; - ret = vsprintf(sbuf, format, arg); + + ret = vsnprintf(sbuf, len + 1, format, arg); + if (ret < 0) + return -1; + blobmsg_add_string_buffer(buf); return ret;