From 614f917a7ee4d91737005eaf3e14a8e562bab4e3 Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Tue, 31 Oct 2017 12:05:13 +0100 Subject: [PATCH] log: check for i/o error with vsnprintf() Signed-off-by: Christian Brauner --- src/lxc/log.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/lxc/log.c b/src/lxc/log.c index 2668015e7..e7e77ff85 100644 --- a/src/lxc/log.c +++ b/src/lxc/log.c @@ -197,7 +197,7 @@ static int log_append_logfile(const struct lxc_log_appender *appender, { char buffer[LXC_LOG_BUFFER_SIZE]; char date_time[LXC_LOG_TIME_SIZE]; - int n; + int n, ret; int fd_to_use = -1; #ifndef NO_LXC_CONF @@ -226,8 +226,13 @@ static int log_append_logfile(const struct lxc_log_appender *appender, if (n < 0) return n; - if ((size_t)n < (sizeof(buffer) - 1)) - n += vsnprintf(buffer + n, sizeof(buffer) - n, event->fmt, *event->vap); + if ((size_t)n < (sizeof(buffer) - 1)) { + ret = vsnprintf(buffer + n, sizeof(buffer) - n, event->fmt, *event->vap); + if (ret < 0) + return 0; + + n += ret; + } if ((size_t)n >= sizeof(buffer)) n = sizeof(buffer) - 1; -- 2.47.2