Source-Changes-HG archive

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

[src/trunk]: src/usr.bin/make Var_Set: avoid SIGSEGV if val is NULL



details:   https://anonhg.NetBSD.org/src/rev/736b0177be4b
branches:  trunk
changeset: 829934:736b0177be4b
user:      sjg <sjg%NetBSD.org@localhost>
date:      Sun Feb 18 00:52:42 2018 +0000

description:
Var_Set: avoid SIGSEGV if val is NULL

A NULL val is handled gracefully (by VarAdd) when
var is not previously set, so we ought not crash
the second time.

PR: 53034

diffstat:

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

diffs (45 lines):

diff -r 8dc271c72ebf -r 736b0177be4b usr.bin/make/var.c
--- a/usr.bin/make/var.c        Sat Feb 17 22:47:14 2018 +0000
+++ b/usr.bin/make/var.c        Sun Feb 18 00:52:42 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: var.c,v 1.217 2017/12/08 03:36:42 sjg Exp $    */
+/*     $NetBSD: var.c,v 1.218 2018/02/18 00:52:42 sjg Exp $    */
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -69,14 +69,14 @@
  */
 
 #ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: var.c,v 1.217 2017/12/08 03:36:42 sjg Exp $";
+static char rcsid[] = "$NetBSD: var.c,v 1.218 2018/02/18 00:52:42 sjg Exp $";
 #else
 #include <sys/cdefs.h>
 #ifndef lint
 #if 0
 static char sccsid[] = "@(#)var.c      8.3 (Berkeley) 3/19/94";
 #else
-__RCSID("$NetBSD: var.c,v 1.217 2017/12/08 03:36:42 sjg Exp $");
+__RCSID("$NetBSD: var.c,v 1.218 2018/02/18 00:52:42 sjg Exp $");
 #endif
 #endif /* not lint */
 #endif
@@ -971,7 +971,8 @@
        VarAdd(name, val, ctxt);
     } else {
        Buf_Empty(&v->val);
-       Buf_AddBytes(&v->val, strlen(val), val);
+       if (val)
+           Buf_AddBytes(&v->val, strlen(val), val);
 
        if (DEBUG(VAR)) {
            fprintf(debug_file, "%s:%s = %s\n", ctxt->name, name, val);
@@ -998,7 +999,7 @@
         * Makefile settings.
         */
        if (varNoExportEnv != TRUE)
-           setenv(name, val, 1);
+           setenv(name, val ? val : "", 1);
 
        Var_Append(MAKEOVERRIDES, name, VAR_GLOBAL);
     }



Home | Main Index | Thread Index | Old Index