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/58351070bac8
branches: trunk
changeset: 359633:58351070bac8
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 491a3103ebf6 -r 58351070bac8 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