From c78e8496d438982157657711fbff8bedb621c1c9 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Tue, 23 May 2017 21:51:59 -0600 Subject: [PATCH] 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 --- log.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) 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); -- 2.25.1