diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | str_array.c | 7 |
2 files changed, 12 insertions, 1 deletions
@@ -1,3 +1,9 @@ +2013-08-22 Arnold D. Robbins <arnold@skeeve.com> + + * str_array.c (env_store): If the new value being stored is NULL, + pass in "" instead. Avoids core dump on Mac OS X. + Thanks to Hermann Peifer for the bug report. + 2013-08-20 Arnold D. Robbins <arnold@skeeve.com> * nonposix.h: New file. Contains FAKE_FD_VALUE. diff --git a/str_array.c b/str_array.c index e4352a9f..33c9ddcc 100644 --- a/str_array.c +++ b/str_array.c @@ -792,10 +792,15 @@ static NODE ** env_store(NODE *symbol, NODE *subs) { NODE **val = str_exists(symbol, subs); + const char *newval; assert(val != NULL); - (void) setenv(subs->stptr, (*val)->stptr, 1); + newval = (*val)->stptr; + if (newval == NULL) + newval = ""; + + (void) setenv(subs->stptr, newval, 1); return val; } |