--- busybox-1.13.0/sysklogd/klogd.c Thu Oct 30 08:41:28 2008 +++ busybox-1.13.0-klogd/sysklogd/klogd.c Thu Nov 20 00:46:00 2008 @@ -73,9 +73,6 @@ 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 @@ errno); break; } + log_buffer[used + n] = '\0'; /* klogctl buffer parsing modelled after code in dmesg.c */ start = &log_buffer[0]; @@ -101,7 +99,7 @@ /* 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;