From d69bd194b9a8f5079e42f4b9f23538435b22424c Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Thu, 8 Jan 2009 13:12:06 +0000 Subject: 26260: fix crash failing to assigns scalar to special hash --- Src/params.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'Src') diff --git a/Src/params.c b/Src/params.c index 0faf667b9..1a826bff4 100644 --- a/Src/params.c +++ b/Src/params.c @@ -495,10 +495,10 @@ scancountparams(UNUSED(HashNode hn), int flags) static Patprog scanprog; static char *scanstr; static char **paramvals; -static Param foundparam; +static Param foundparam; /**/ -void +static void scanparamvals(HashNode hn, int flags) { struct value v; @@ -538,6 +538,7 @@ scanparamvals(HashNode hn, int flags) --numparamvals; /* Value didn't match, discard key */ } else ++numparamvals; + foundparam = NULL; } /**/ @@ -2270,7 +2271,15 @@ setstrvalue(Value v, char *val) break; case PM_HASHED: { - foundparam->gsu.s->setfn(foundparam, val); + if (foundparam == NULL) + { + zerr("%s: attempt to set associative array to scalar", + v->pm->node.nam); + zsfree(val); + return; + } + else + foundparam->gsu.s->setfn(foundparam, val); } break; } -- cgit 1.4.1