From: Jens Axboe Date: Wed, 24 May 2017 03:51:59 +0000 (-0600) Subject: log: ensure we don't truncate the final '\0' in the log X-Git-Tag: fio-2.21~33 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=c78e8496d438982157657711fbff8bedb621c1c9;p=fio.git log: ensure we don't truncate the final '\0' in the log Fixes: 7d64aa48 ("log: make the logging functions handle > 1024 bytes correctly") Signed-off-by: Jens Axboe --- diff --git a/log.c b/log.c index f34892dc..c7856eb7 100644 --- a/log.c +++ b/log.c @@ -38,10 +38,10 @@ size_t log_valist(const char *str, va_list args) buffer = calloc(1, cur); len = vsnprintf(buffer, cur, str, args); - if (len <= cur) + if (len < cur) break; - cur = len; + cur = len + 1; free(buffer); } while (1); @@ -64,10 +64,10 @@ size_t log_info(const char *format, ...) len = vsnprintf(buffer, cur, format, args); va_end(args); - if (len <= cur) + if (len < cur) break; - cur = len; + cur = len + 1; free(buffer); } while (1); @@ -90,10 +90,10 @@ size_t __log_buf(struct buf_output *buf, const char *format, ...) len = vsnprintf(buffer, cur, format, args); va_end(args); - if (len <= cur) + if (len < cur) break; - cur = len; + cur = len + 1; free(buffer); } while (1); @@ -124,10 +124,10 @@ size_t log_err(const char *format, ...) len = vsnprintf(buffer, cur, format, args); va_end(args); - if (len <= cur) + if (len < cur) break; - cur = len; + cur = len + 1; free(buffer); } while (1);