From a70b85fd641aa1845d7d028ca4192773c4de5459 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Sun, 28 Oct 2018 15:28:03 +0100 Subject: [PATCH] minor klogd fixes when copying the left over stub, always make sure we copy the null terminator as well. Theoretically shouldn't be a problem since we exit the inner loop anyway and then append to the buffer and add a new null terminator, but just to be safe, make sure the buffer is *ALWAYS* null-terminated. When we are at it, skip the buffer copy if we didn't consume any input and actually compare the value against '\0' instead of just testing for *ptr (readabillity). Signed-off-by: David Oberhollenzer --- klogd.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/klogd.c b/klogd.c index 8db1d50..c9f551b 100644 --- a/klogd.c +++ b/klogd.c @@ -126,8 +126,6 @@ int main(int argc, char **argv) sigsetup(); log_open(); - /* TODO: seccomp lockdown? */ - while (running) { diff = klogctl(KLOG_READ, log_buffer + count, sizeof(log_buffer) - 1 - count); @@ -147,8 +145,10 @@ int main(int argc, char **argv) for (;;) { end = strchr(ptr, '\n'); if (end == NULL) { - count = strlen(ptr); - memmove(log_buffer, ptr, count); + if (ptr != log_buffer) { + count = strlen(ptr); + memmove(log_buffer, ptr, count + 1); + } break; } @@ -163,7 +163,7 @@ int main(int argc, char **argv) ++ptr; } - if (*ptr) + if (*ptr != '\0') syslog(priority, "%s", ptr); ptr = end; }