blobmsg: blobmsg_vprintf: prefer vsnprintf
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>
This commit is contained in:
parent
a2aab30fc9
commit
132ecb563d
1 changed files with 8 additions and 1 deletions
|
@ -290,10 +290,17 @@ int blobmsg_vprintf(struct blob_buf *buf, const char *name, const char *format,
|
||||||
len = vsnprintf(&cbuf, sizeof(cbuf), format, arg2);
|
len = vsnprintf(&cbuf, sizeof(cbuf), format, arg2);
|
||||||
va_end(arg2);
|
va_end(arg2);
|
||||||
|
|
||||||
|
if (len < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
sbuf = blobmsg_alloc_string_buffer(buf, name, len + 1);
|
sbuf = blobmsg_alloc_string_buffer(buf, name, len + 1);
|
||||||
if (!sbuf)
|
if (!sbuf)
|
||||||
return -1;
|
return -1;
|
||||||
ret = vsprintf(sbuf, format, arg);
|
|
||||||
|
ret = vsnprintf(sbuf, len + 1, format, arg);
|
||||||
|
if (ret < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
blobmsg_add_string_buffer(buf);
|
blobmsg_add_string_buffer(buf);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in a new issue