From 7eba38a633768816989fbe2332f5aa24be54a38a Mon Sep 17 00:00:00 2001 From: belliash Date: Sat, 9 Mar 2019 13:25:13 +0100 Subject: [PATCH] Fix segmentation fault when trying to store a value under next index into an array. --- engine/vm.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/engine/vm.c b/engine/vm.c index 0b4155a..38f0124 100644 --- a/engine/vm.c +++ b/engine/vm.c @@ -2447,6 +2447,15 @@ static sxi32 VmByteCodeExec( PH7_MemObjRelease(pTos); } else { pObj = VmExtractMemObj(&(*pVm), &sName, FALSE, TRUE); + if(pInstr->iP2 & MEMOBJ_HASHMAP) { + ph7_hashmap *pMap; + pMap = PH7_NewHashmap(&(*pVm), 0, 0); + if(pMap == 0) { + PH7_VmMemoryError(&(*pVm)); + goto Abort; + } + pObj->x.pOther = pMap; + } MemObjSetType(pObj, pInstr->iP2); } pTos->nIdx = SXU32_HIGH; /* Mark as constant */