From 132ecb563da794f390209c20f94d4798839dc709 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Petr=20=C5=A0tetiar?= <ynezz@true.cz>
Date: Tue, 14 Jan 2020 08:57:05 +0100
Subject: [PATCH] blobmsg: blobmsg_vprintf: prefer vsnprintf
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

Better safe than sorry and while at it add handling of possible
*printf() failures.

Reviewed-by: Jo-Philipp Wich <jo@mein.io>
Signed-off-by: Petr Å tetiar <ynezz@true.cz>
---
 blobmsg.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

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;
-- 
2.25.1