diff options
author | Peter Stephenson <pws@zsh.org> | 2015-10-06 09:28:07 +0100 |
---|---|---|
committer | Peter Stephenson <pws@zsh.org> | 2015-10-06 09:28:07 +0100 |
commit | 83a175795a444e8169fcb592a110d4d15a09b907 (patch) | |
tree | ded4925ccaeca3c4f94176565a1444caa1cc176b /Src/params.c | |
parent | 3f9606333578384221948e285ed896738071b253 (diff) | |
download | zsh-83a175795a444e8169fcb592a110d4d15a09b907.tar.gz zsh-83a175795a444e8169fcb592a110d4d15a09b907.tar.xz zsh-83a175795a444e8169fcb592a110d4d15a09b907.zip |
36780: Fix crash in ksh mode with -n and $HOME.
If home variable is NULL ensure HOME is unset.
Diffstat (limited to 'Src/params.c')
-rw-r--r-- | Src/params.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/Src/params.c b/Src/params.c index de151a4cd..a8abb289e 100644 --- a/Src/params.c +++ b/Src/params.c @@ -775,17 +775,18 @@ createparamtable(void) #endif opts[ALLEXPORT] = oae; + /* + * For native emulation we always set the variable home + * (see setupvals()). + */ + pm = (Param) paramtab->getnode(paramtab, "HOME"); if (EMULATION(EMULATE_ZSH)) { - /* - * For native emulation we always set the variable home - * (see setupvals()). - */ - pm = (Param) paramtab->getnode(paramtab, "HOME"); pm->node.flags &= ~PM_UNSET; if (!(pm->node.flags & PM_EXPORTED)) addenv(pm, home); - } + } else if (!home) + pm->node.flags |= PM_UNSET; pm = (Param) paramtab->getnode(paramtab, "LOGNAME"); if (!(pm->node.flags & PM_EXPORTED)) addenv(pm, pm->u.str); |