Module Name: src
Committed By: sjg
Date: Mon Jun 4 22:45:06 UTC 2012
Modified Files:
src/usr.bin/make: util.c
Log Message:
Fix findenv() to fully match name
To generate a diff of this commit:
cvs rdiff -u -r1.52 -r1.53 src/usr.bin/make/util.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/make/util.c
diff -u src/usr.bin/make/util.c:1.52 src/usr.bin/make/util.c:1.53
--- src/usr.bin/make/util.c:1.52 Mon Jun 4 20:34:20 2012
+++ src/usr.bin/make/util.c Mon Jun 4 22:45:05 2012
@@ -1,15 +1,15 @@
-/* $NetBSD: util.c,v 1.52 2012/06/04 20:34:20 sjg Exp $ */
+/* $NetBSD: util.c,v 1.53 2012/06/04 22:45:05 sjg Exp $ */
/*
* Missing stuff from OS's
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: util.c,v 1.52 2012/06/04 20:34:20 sjg Exp $";
+static char rcsid[] = "$NetBSD: util.c,v 1.53 2012/06/04 22:45:05 sjg Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: util.c,v 1.52 2012/06/04 20:34:20 sjg Exp $");
+__RCSID("$NetBSD: util.c,v 1.53 2012/06/04 22:45:05 sjg Exp $");
#endif
#endif
@@ -48,11 +48,12 @@ findenv(const char *name, int *offset)
size_t i, len;
char *p, *q;
+ len = strlen(name);
for (i = 0; (q = environ[i]); i++) {
p = strchr(q, '=');
- if (p == NULL)
+ if (p == NULL || p - q != len)
continue;
- if (strncmp(name, q, len = p - q) == 0) {
+ if (strncmp(name, q, len) == 0) {
*offset = i;
return q + len + 1;
}