Sun Mar 14 16:03:04 2021 UTC ()
make: return failure in TryParseIntBase0 for empty string

No functional change since the only caller of TryParseIntBase0 already
handles all possible parse errors.  Without this check, the code just
looked wrong though.


(rillig)
diff -r1.864 -r1.865 src/usr.bin/make/var.c

cvs diff -r1.864 -r1.865 src/usr.bin/make/var.c (expand / switch to context diff)
--- src/usr.bin/make/var.c 2021/03/14 15:43:31 1.864
+++ src/usr.bin/make/var.c 2021/03/14 16:03:04 1.865
@@ -1,4 +1,4 @@
-/*	$NetBSD: var.c,v 1.864 2021/03/14 15:43:31 rillig Exp $	*/
+/*	$NetBSD: var.c,v 1.865 2021/03/14 16:03:04 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -140,7 +140,7 @@
 #include "metachar.h"
 
 /*	"@(#)var.c	8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.864 2021/03/14 15:43:31 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.865 2021/03/14 16:03:04 rillig Exp $");
 
 typedef enum VarFlags {
 	VFL_NONE	= 0,
@@ -2308,6 +2308,9 @@
 
 	errno = 0;
 	n = strtol(*pp, &end, 0);
+
+	if (end == *pp)
+		return FALSE;
 	if ((n == LONG_MIN || n == LONG_MAX) && errno == ERANGE)
 		return FALSE;
 	if (n < INT_MIN || n > INT_MAX)