summaryrefslogtreecommitdiff
path: root/sysklogd/klogd.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysklogd/klogd.c')
-rw-r--r--sysklogd/klogd.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/sysklogd/klogd.c b/sysklogd/klogd.c
index 723ca80..a27ddf4 100644
--- a/sysklogd/klogd.c
+++ b/sysklogd/klogd.c
@@ -73,9 +73,6 @@ int klogd_main(int argc UNUSED_PARAM, char **argv)
syslog(LOG_NOTICE, "klogd started: %s", bb_banner);
- /* Initially null terminate the buffer in case of a very long line */
- log_buffer[KLOGD_LOGBUF_SIZE - 1] = '\0';
-
while (1) {
int n;
int priority;
@@ -89,6 +86,7 @@ int klogd_main(int argc UNUSED_PARAM, char **argv)
errno);
break;
}
+ log_buffer[used + n] = '\0';
/* klogctl buffer parsing modelled after code in dmesg.c */
start = &log_buffer[0];
@@ -101,7 +99,7 @@ int klogd_main(int argc UNUSED_PARAM, char **argv)
/* This line is incomplete... */
if (start != log_buffer) {
/* move it to the front of the buffer */
- strcpy(log_buffer, start);
+ overlapping_strcpy(log_buffer, start);
/* don't log it yet */
used = strlen(log_buffer);
break;