This fix is from the community, details in the following location.
--- INIT.2011-02-08.old/src/cmd/ksh93/sh/name.c 2015-04-14 13:17:18.598612500 -0700
+++ INIT.2011-02-08/src/cmd/ksh93/sh/name.c 2015-04-14 13:28:33.128198600 -0700
@@ -1301,7 +1301,17 @@
if(dtdelete(root,np))
{
if(!(flags&NV_NOFREE) && ((flags&NV_FUNCTION) || !nv_subsaved(np)))
+ {
+ Namarr_t *ap;
+ if(nv_isarray(np) && np->nvfun &&
+ (ap=nv_arrayptr(np)) && array_assoc(ap)) {
+ while(nv_associative(np,0,NV_ANEXT))
+ nv_associative(np, 0, NV_ADELETE);
+ nv_associative(np, 0, NV_AFREE);
+ free((void*)np->nvfun);
+ }
free((void*)np);
+ }
}
#if 0
else