diff options
author | Jo-Philipp Wich <jo@mein.io> | 2022-03-14 14:03:20 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-14 14:03:20 +0100 |
commit | 8fd4746da31b945a6259ac846f7cf8dcfef0b1ef (patch) | |
tree | d85e903695619bbee91e341b04da16880128fd4f /vm.c | |
parent | 3d202b973bfc50dd5b91f111a13219fa69ca45e6 (diff) | |
parent | c402551277239098e2da98e223ddd67d061ae2a7 (diff) |
Merge pull request #49 from jow-/vm-computed-prop-crash
vm: fix crash on object literals with non-string computed properties
Diffstat (limited to 'vm.c')
-rw-r--r-- | vm.c | 11 |
1 files changed, 4 insertions, 7 deletions
@@ -1804,15 +1804,12 @@ static void uc_vm_insn_sobj(uc_vm_t *vm, uc_vm_insn_t insn) { uc_value_t *obj = uc_vm_stack_peek(vm, vm->arg.u32); - uc_value_t *val; size_t idx; - for (idx = 0; idx < vm->arg.u32; idx += 2) { - val = uc_vm_stack_peek(vm, vm->arg.u32 - idx - 1); - ucv_object_add(obj, - ucv_string_get(val), - ucv_get(uc_vm_stack_peek(vm, vm->arg.u32 - idx - 2))); - } + for (idx = 0; idx < vm->arg.u32; idx += 2) + ucv_key_set(vm, obj, + uc_vm_stack_peek(vm, vm->arg.u32 - idx - 1), + uc_vm_stack_peek(vm, vm->arg.u32 - idx - 2)); for (idx = 0; idx < vm->arg.u32; idx++) ucv_put(uc_vm_stack_pop(vm)); |