diff options
author | Jo-Philipp Wich <jo@mein.io> | 2022-03-14 13:14:12 +0100 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2022-03-14 13:16:11 +0100 |
commit | c402551277239098e2da98e223ddd67d061ae2a7 (patch) | |
tree | d85e903695619bbee91e341b04da16880128fd4f /tests/custom/04_bugs | |
parent | 3d202b973bfc50dd5b91f111a13219fa69ca45e6 (diff) |
vm: fix crash on object literals with non-string computed properties
When executing an object literal declaration using non-string computed
property name values, the VM crashed caused by an attempt to use a NULL
pointer (result of ucv_string_get() on a non-string value) as hash table
key.
Fix this issue by using the `ucv_key_set()` infrastructure which deals
with the implicit stringification of non-string key values.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'tests/custom/04_bugs')
-rw-r--r-- | tests/custom/04_bugs/33_vm_computed_prop_decl_crash | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/custom/04_bugs/33_vm_computed_prop_decl_crash b/tests/custom/04_bugs/33_vm_computed_prop_decl_crash new file mode 100644 index 0000000..60b276c --- /dev/null +++ b/tests/custom/04_bugs/33_vm_computed_prop_decl_crash @@ -0,0 +1,17 @@ +When executing an object literal declaration using non-string computed +property name values, the VM crashed caused by an attempt to use a NULL +pointer (result of ucv_string_get() on a non-string value) as hash table +key. + +-- Testcase -- +{% + printf("%.J\n", { [1]: "test", [true]: "foo" }); +%} +-- End -- + +-- Expect stdout -- +{ + "1": "test", + "true": "foo" +} +-- End -- |