summaryrefslogtreecommitdiff
path: root/blobmsg.c
diff options
context:
space:
mode:
Diffstat (limited to 'blobmsg.c')
-rw-r--r--blobmsg.c9
1 files changed, 8 insertions, 1 deletions
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;