Package: zsh Version: 5.3.1-3 Severity: important Tags: upstream patch Dear Maintainer,
Please find attached two segfault fixes for zsh. The first was committed upstream already, the second is expected to be committed upstream tomorrow. Upstream hasn't yet audited the module for additional similar instances. Cheers, Daniel
>From e9267adb49877bf3e7b30a740745535109202001 Mon Sep 17 00:00:00 2001 From: Daniel Shahaf <d...@daniel.shahaf.name> Date: Tue, 7 Feb 2017 04:28:50 +0000 Subject: [PATCH] 40508: Make $functions re-settable. --- ChangeLog | 5 +++++ Src/Modules/parameter.c | 4 ++-- Test/V06parameter.ztst | 6 ++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0f24ac9..09e9b62 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2017-02-08 Daniel Shahaf <d...@daniel.shahaf.name> + + * 40508: Src/Modules/parameter.c, Test/V06parameter.ztst: + Make $functions re-settable. + 2017-02-07 Peter Stephenson <p.stephen...@samsung.com> * Sebastian: 40507: Src/Modules/db_gdbm.c: remove extraneous diff --git a/Src/Modules/parameter.c b/Src/Modules/parameter.c index 6e62287..c251e4f 100644 --- a/Src/Modules/parameter.c +++ b/Src/Modules/parameter.c @@ -330,7 +330,7 @@ unsetpmfunction(Param pm, UNUSED(int exp)) /**/ static void -setfunctions(UNUSED(Param pm), HashTable ht, int dis) +setfunctions(Param pm, HashTable ht, int dis) { int i; HashNode hn; @@ -349,7 +349,7 @@ setfunctions(UNUSED(Param pm), HashTable ht, int dis) setfunction(hn->nam, ztrdup(getstrvalue(&v)), dis); } - deleteparamtable(ht); + hashsetfn(pm, ht); } /**/ diff --git a/Test/V06parameter.ztst b/Test/V06parameter.ztst index 10e0a27..27d5878 100644 --- a/Test/V06parameter.ztst +++ b/Test/V06parameter.ztst @@ -86,6 +86,12 @@ >I have been autoloaded >$mydir/myfunc + functions+=(a 'echo foo'); a + functions+=(a 'echo bar'); a +0:$functions can be appended to twice +>foo +>bar + %clean rm -f autofn functrace.zsh rocky3.zsh sourcedfile myfunc
>From 9d9661b670850ada1169adf0781273721fd579e9 Mon Sep 17 00:00:00 2001 From: Daniel Shahaf <d...@daniel.shahaf.name> Date: Fri, 24 Feb 2017 05:01:34 +0000 Subject: [PATCH] Make $options re-settable. Follow-up to 40508. Reported-by: James McGlashan --- Src/Modules/parameter.c | 4 ++-- Test/V06parameter.ztst | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Src/Modules/parameter.c b/Src/Modules/parameter.c index c251e4f..c7aac88 100644 --- a/Src/Modules/parameter.c +++ b/Src/Modules/parameter.c @@ -937,7 +937,7 @@ unsetpmoption(Param pm, UNUSED(int exp)) /**/ static void -setpmoptions(UNUSED(Param pm), HashTable ht) +setpmoptions(Param pm, HashTable ht) { int i; HashNode hn; @@ -962,7 +962,7 @@ setpmoptions(UNUSED(Param pm), HashTable ht) (val && strcmp(val, "off")), 0, opts)) zwarn("can't change option: %s", hn->nam); } - deleteparamtable(ht); + hashsetfn(pm, ht); } static const struct gsu_scalar pmoption_gsu = diff --git a/Test/V06parameter.ztst b/Test/V06parameter.ztst index 27d5878..2b66713 100644 --- a/Test/V06parameter.ztst +++ b/Test/V06parameter.ztst @@ -92,6 +92,9 @@ >foo >bar + options+=(); options+=() +0:$options can be appended to twice + %clean rm -f autofn functrace.zsh rocky3.zsh sourcedfile myfunc