[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    [PATCH] syslogd: don't *decrement* log_file->size on write-failures
From:       Joshua Judson Rosen <jrosen () harvestai ! com>
Date:       2014-05-22 19:42:09
Message-ID: 1400787729-4952-1-git-send-email-jrosen () harvestai ! com
[Download RAW message or body]

Even if we fail to write to a log-file, and it's not growing,
it's not *shrinking* either....

Signed-off-by: Joshua Judson Rosen <jrosen@harvestai.com>
---
 sysklogd/syslogd.c |   11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c
index a6a4ff2..ca926b9 100644
--- a/sysklogd/syslogd.c
+++ b/sysklogd/syslogd.c
@@ -584,6 +584,9 @@ static void log_locally(time_t now, char *msg, logFile_t *log_file)
 	struct flock fl;
 #endif
 	int len = strlen(msg);
+#if ENABLE_FEATURE_ROTATE_LOGFILE
+	int len_written;
+#endif
 
 	if (log_file->fd >= 0) {
 		/* Reopen log file every second. This allows admin
@@ -665,9 +668,15 @@ static void log_locally(time_t now, char *msg, logFile_t *log_file)
 		}
 		ftruncate(log_file->fd, 0);
 	}
-	log_file->size +=
+
+	len_written =
 #endif
 			full_write(log_file->fd, msg, len);
+#if ENABLE_FEATURE_ROTATE_LOGFILE
+	if (len_written >= 0) {
+		log_file->size += len_written;
+	}
+#endif
 #ifdef SYSLOGD_WRLOCK
 	fl.l_type = F_UNLCK;
 	fcntl(log_file->fd, F_SETLKW, &fl);
-- 
1.7.10.4

_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic