From: Christian Brauner Date: Tue, 31 Oct 2017 11:05:13 +0000 (+0100) Subject: log: check for i/o error with vsnprintf() X-Git-Tag: lxc-2.0.10~592 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=614f917a7ee4d91737005eaf3e14a8e562bab4e3;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 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;