- Check for output truncation in strcatf().
This commit is contained in:
9
utils.c
9
utils.c
@ -37,11 +37,16 @@ inline int
|
||||
strcatf(struct string_s *str, const char *fmt, ...)
|
||||
{
|
||||
int ret;
|
||||
int size;
|
||||
va_list ap;
|
||||
|
||||
if (str->off >= str->size)
|
||||
return 0;
|
||||
|
||||
va_start(ap, fmt);
|
||||
ret = vsnprintf(str->data + str->off, str->size - str->off, fmt, ap);
|
||||
str->off += ret;
|
||||
size = str->size - str->off;
|
||||
ret = vsnprintf(str->data + str->off, size, fmt, ap);
|
||||
str->off += MIN(ret, size);
|
||||
va_end(ap);
|
||||
|
||||
return ret;
|
||||
|
Reference in New Issue
Block a user