From 8d5b3d429888da22e38d4f62fd7ae0c15e9980fe Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 26 Jan 2008 13:51:14 +0000 Subject: (target_environment): Don't use shell_var if its `value' field is NULL. --- variable.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'variable.c') diff --git a/variable.c b/variable.c index 25491c4..3dc8a22 100644 --- a/variable.c +++ b/variable.c @@ -918,15 +918,18 @@ target_environment (struct file *file) break; case v_noexport: - /* If this is the SHELL variable and it's not exported, then - add the value from our original environment. */ - if (streq (v->name, "SHELL")) - { - extern struct variable shell_var; - v = &shell_var; - break; - } - continue; + { + /* If this is the SHELL variable and it's not exported, + then add the value from our original environment, if + the original environment defined a value for SHELL. */ + extern struct variable shell_var; + if (streq (v->name, "SHELL") && shell_var.value) + { + v = &shell_var; + break; + } + continue; + } case v_ifset: if (v->origin == o_default) -- cgit v1.2.3