Module Name: src Committed By: sjg Date: Mon Nov 30 23:15:43 UTC 2015
Modified Files: src/usr.bin/make: cond.c Log Message: Avoid accessing beyond end of empty string. Detected by Address Sanitizer - dim at FreeBSD.org To generate a diff of this commit: cvs rdiff -u -r1.69 -r1.70 src/usr.bin/make/cond.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/cond.c diff -u src/usr.bin/make/cond.c:1.69 src/usr.bin/make/cond.c:1.70 --- src/usr.bin/make/cond.c:1.69 Sun Oct 11 04:51:24 2015 +++ src/usr.bin/make/cond.c Mon Nov 30 23:15:43 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: cond.c,v 1.69 2015/10/11 04:51:24 sjg Exp $ */ +/* $NetBSD: cond.c,v 1.70 2015/11/30 23:15:43 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -70,14 +70,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: cond.c,v 1.69 2015/10/11 04:51:24 sjg Exp $"; +static char rcsid[] = "$NetBSD: cond.c,v 1.70 2015/11/30 23:15:43 sjg Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)cond.c 8.2 (Berkeley) 1/2/94"; #else -__RCSID("$NetBSD: cond.c,v 1.69 2015/10/11 04:51:24 sjg Exp $"); +__RCSID("$NetBSD: cond.c,v 1.70 2015/11/30 23:15:43 sjg Exp $"); #endif #endif /* not lint */ #endif @@ -489,6 +489,10 @@ CondCvtArg(char *str, double *value) unsigned long l_val; double d_val; + if (!*str) { + errno = EINVAL; + return FALSE; + } errno = 0; l_val = strtoul(str, &eptr, str[1] == 'x' ? 16 : 10); ech = *eptr;