Fix a non-exploitable buffer overflow in the word splitting code. This
should really be rewritten.
This commit is contained in:
@@ -139,7 +139,8 @@ do_syslog(pri, msg)
|
|||||||
/*
|
/*
|
||||||
* Log the full line, breaking into multiple syslog(3) calls if necessary
|
* Log the full line, breaking into multiple syslog(3) calls if necessary
|
||||||
*/
|
*/
|
||||||
for (p = msg, count = 0; count < strlen(msg) / MAXSYSLOGLEN + 1; count++) {
|
for (p = msg, count = 0; *p && count < strlen(msg) / MAXSYSLOGLEN + 1;
|
||||||
|
count++) {
|
||||||
if (strlen(p) > MAXSYSLOGLEN) {
|
if (strlen(p) > MAXSYSLOGLEN) {
|
||||||
/*
|
/*
|
||||||
* Break up the line into what will fit on one syslog(3) line
|
* Break up the line into what will fit on one syslog(3) line
|
||||||
@@ -162,7 +163,7 @@ do_syslog(pri, msg)
|
|||||||
*tmp = save; /* restore saved character */
|
*tmp = save; /* restore saved character */
|
||||||
|
|
||||||
/* Eliminate leading whitespace */
|
/* Eliminate leading whitespace */
|
||||||
for (p = tmp; *p != ' '; p++)
|
for (p = tmp; *p != ' ' && *p !='\0'; p++)
|
||||||
;
|
;
|
||||||
} else {
|
} else {
|
||||||
if (count == 0)
|
if (count == 0)
|
||||||
|
Reference in New Issue
Block a user