Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/make make: return failure in TryParseIntBase0 for em...



details:   https://anonhg.NetBSD.org/src/rev/1a5ec2e178b2
branches:  trunk
changeset: 953625:1a5ec2e178b2
user:      rillig <rillig%NetBSD.org@localhost>
date:      Sun Mar 14 16:03:04 2021 +0000

description:
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.

diffstat:

 usr.bin/make/var.c |  7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diffs (28 lines):

diff -r 1ffc43945575 -r 1a5ec2e178b2 usr.bin/make/var.c
--- a/usr.bin/make/var.c        Sun Mar 14 16:00:07 2021 +0000
+++ b/usr.bin/make/var.c        Sun Mar 14 16:03:04 2021 +0000
@@ -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)



Home | Main Index | Thread Index | Old Index