If buf[-1] just happens to hold the byte 0x0A, then nread can wrap around
to (size_t)-1, leading to invalid memory accesses.
This has caused segmentation faults when trying to build the latest
kernel snapshots for i686 in Fedora:
https://bugzilla.redhat.com/show_bug.cgi?id=
1592374
Signed-off-by: Jerry James <[email protected]>
[
[email protected]: reformatted patch for submission]
Signed-off-by: Alexander Ploumistos <[email protected]>
Signed-off-by: Masahiro Yamada <[email protected]>
nread--;
/* remove trailing new lines */
- while (buf[nread - 1] == '\n')
+ while (nread > 0 && buf[nread - 1] == '\n')
nread--;
buf[nread] = 0;