Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Nov 2015 00:26:24 +0000 (UTC)
From:      "Simon J. Gerraty" <sjg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r291342 - head/contrib/bmake
Message-ID:  <201511260026.tAQ0QOYx085920@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: sjg
Date: Thu Nov 26 00:26:23 2015
New Revision: 291342
URL: https://svnweb.freebsd.org/changeset/base/291342

Log:
  ParseTrackInput: do not access beyond end of buffer.
  
  Reviewed by:	dim

Modified:
  head/contrib/bmake/parse.c

Modified: head/contrib/bmake/parse.c
==============================================================================
--- head/contrib/bmake/parse.c	Wed Nov 25 22:59:41 2015	(r291341)
+++ head/contrib/bmake/parse.c	Thu Nov 26 00:26:23 2015	(r291342)
@@ -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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201511260026.tAQ0QOYx085920>