From fe90c77aae163fc046ced393486736e38ae30ece Mon Sep 17 00:00:00 2001 From: "Simon J. Gerraty" Date: Thu, 26 Nov 2015 00:26:23 +0000 Subject: [PATCH] ParseTrackInput: do not access beyond end of buffer. Reviewed by: dim --- contrib/bmake/parse.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contrib/bmake/parse.c b/contrib/bmake/parse.c index 171847019acd..71735cb9491b 100644 --- a/contrib/bmake/parse.c +++ b/contrib/bmake/parse.c @@ -2390,15 +2390,19 @@ static void ParseTrackInput(const char *name) { char *old; + char *ep; char *fp = NULL; size_t name_len = strlen(name); old = Var_Value(MAKE_MAKEFILES, VAR_GLOBAL, &fp); if (old) { + ep = old + strlen(old) - name_len; /* does it contain name? */ for (; old != NULL; old = strchr(old, ' ')) { if (*old == ' ') old++; + if (old >= ep) + break; /* cannot contain name */ if (memcmp(old, name, name_len) == 0 && (old[name_len] == 0 || old[name_len] == ' ')) goto cleanup;