[git commit] syslogd: avoid spurious ftrunctate() calls for "-b 0"

Denys Vlasenko vda.linux at googlemail.com
Mon Jun 2 01:11:38 UTC 2014


commit: http://git.busybox.net/busybox/commit/?id=1b90e031c3a3bd6dc5c2a34193ec6e9727b79a39
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Forgetting to re-set log_file->size after truncating to zero
discards log-data for the next 1 second following an oversize-induced purge,
when we shouldn't necessarily throw that data away.

Signed-off-by: Joshua Judson Rosen <jrosen at harvestai.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 sysklogd/syslogd.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c
index a6a4ff2..2c959ff 100644
--- a/sysklogd/syslogd.c
+++ b/sysklogd/syslogd.c
@@ -663,7 +663,13 @@ static void log_locally(time_t now, char *msg, logFile_t *log_file)
 			close(log_file->fd);
 			goto reopen;
 		}
+
+		/* We don't get here unless G.logFileRotate == 0;
+		 * in which case don't bother unlinking and reopening,
+		 * just truncate and reset size to match:
+		 */
 		ftruncate(log_file->fd, 0);
+		log_file->size = 0;
 	}
 	log_file->size +=
 #endif


More information about the busybox-cvs mailing list