util/resolve: Do not read past the end of the array in read_dep_list()

If the last non-NULL byte of "buf" is not a white-space character (such as
when a read line is longer than the size of "buf"), then "p" will eventually
point to the byte after the last byte in "buf". After which "p" will be
dereferenced in the while conditional leading to an out of bounds read. Make
sure that "p" is inside "buf" before dereferencing it.

Signed-off-by: Glenn Washburn <development@efficientek.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Glenn Washburn 2022-01-12 20:55:00 -06:00 committed by Daniel Kiper
parent fcf2594ca1
commit ddf47bdb04

View File

@ -102,7 +102,7 @@ read_dep_list (FILE *fp)
dep_list = dep;
/* Add dependencies. */
while (*p)
while (p < (buf + sizeof (buf)) && *p)
{
struct mod_list *mod;
char *name;