From 0431551435e79664b46f2ae2a7dca394e4314f05 Mon Sep 17 00:00:00 2001 From: Supriya Kannery Date: Sat, 30 Apr 2011 16:26:14 +0530 Subject: [PATCH] virsh: fix regression in log to file Commit 36deff04 introduced a regression due to which virsh is not able to log to a file - msg_buf was changed from an array to a pointer without corresponding change to usage of "sizeof()". Fix regression in virsh logging Signed-off-by: Supriya Kannery --- AUTHORS | 1 + tools/virsh.c | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/AUTHORS b/AUTHORS index 877fb03ac7..b951b4996e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -169,6 +169,7 @@ Patches have also been contributed by: Richard Laager Mark Wu Yufang Zhang + Supriya Kannery [....send patches to get your name here....] diff --git a/tools/virsh.c b/tools/virsh.c index 506572bb49..3d4ed2ffe6 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -12227,7 +12227,8 @@ vshOpenLogFile(vshControl *ctl) * Outputting an error to log file. */ static void -vshOutputLogFile(vshControl *ctl, int log_level, const char *msg_format, va_list ap) +vshOutputLogFile(vshControl *ctl, int log_level, const char *msg_format, + va_list ap) { char *msg_buf; const char *lvl = ""; @@ -12246,7 +12247,7 @@ vshOutputLogFile(vshControl *ctl, int log_level, const char *msg_format, va_list */ gettimeofday(&stTimeval, NULL); stTm = localtime(&stTimeval.tv_sec); - snprintf(msg_buf, sizeof(msg_buf), + snprintf(msg_buf, MSG_BUFFER, "[%d.%02d.%02d %02d:%02d:%02d ", (1900 + stTm->tm_year), (1 + stTm->tm_mon), @@ -12254,7 +12255,7 @@ vshOutputLogFile(vshControl *ctl, int log_level, const char *msg_format, va_list (stTm->tm_hour), (stTm->tm_min), (stTm->tm_sec)); - snprintf(msg_buf + strlen(msg_buf), sizeof(msg_buf) - strlen(msg_buf), + snprintf(msg_buf + strlen(msg_buf), MSG_BUFFER - strlen(msg_buf), "%s] ", SIGN_NAME); switch (log_level) { case VSH_ERR_DEBUG: @@ -12276,13 +12277,13 @@ vshOutputLogFile(vshControl *ctl, int log_level, const char *msg_format, va_list lvl = LVL_DEBUG; break; } - snprintf(msg_buf + strlen(msg_buf), sizeof(msg_buf) - strlen(msg_buf), + snprintf(msg_buf + strlen(msg_buf), MSG_BUFFER - strlen(msg_buf), "%s ", lvl); - vsnprintf(msg_buf + strlen(msg_buf), sizeof(msg_buf) - strlen(msg_buf), + vsnprintf(msg_buf + strlen(msg_buf), MSG_BUFFER - strlen(msg_buf), msg_format, ap); if (msg_buf[strlen(msg_buf) - 1] != '\n') - snprintf(msg_buf + strlen(msg_buf), sizeof(msg_buf) - strlen(msg_buf), "\n"); + snprintf(msg_buf + strlen(msg_buf), MSG_BUFFER - strlen(msg_buf), "\n"); /* write log */ if (safewrite(ctl->log_fd, msg_buf, strlen(msg_buf)) < 0) { -- GitLab