From: Christian Brauner Date: Tue, 31 Oct 2017 11:05:13 +0000 (+0100) Subject: log: check for i/o error with vsnprintf() X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8837c2593a81350d0c268b54e02dec70c2cb3ca1;p=thirdparty%2Flxc.git log: check for i/o error with vsnprintf() Signed-off-by: Christian Brauner --- diff --git a/src/lxc/log.c b/src/lxc/log.c index 16b79c09d..351b191fb 100644 --- a/src/lxc/log.c +++ b/src/lxc/log.c @@ -264,7 +264,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 @@ -295,8 +295,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;