Issue 23653 in oss-fuzz reports a heap overflow bug which is in fact a
bug introduced by commit
9e1758efb ("BUG/MEDIUM: cfgparse: use
parse_line() to expand/unquote/unescape config lines") to address
oss-fuzz issue 22689, which was only partially fixed by commit
70f58997f
("BUG/MINOR: cfgparse: Support configurations without newline at EOF").
Actually on an empty line, end == line so we cannot dereference end-1
to check for a trailing LF without first being sure that end is greater
than line.
No backport is needed, this is 2.2 only.
readbytes = 0;
- if (*(end-1) == '\n') {
+ if (end > line && *(end-1) == '\n') {
/* kill trailing LF */
*(end - 1) = 0;
}