aboutsummaryrefslogtreecommitdiff
path: root/core/encoding/json
diff options
context:
space:
mode:
authorLaytan Laats <laytanlaats@hotmail.com>2024-12-06 22:12:52 +0100
committerLaytan Laats <laytanlaats@hotmail.com>2024-12-06 22:12:52 +0100
commit7edd332993b485ebdd81ccce5af5dacb16e72156 (patch)
treebc8cf3c46b5528206f2b4a502ee498f05c4596c0 /core/encoding/json
parent676fe34863c9332a49e2b5e659960caa5aa4d325 (diff)
fix #4536 - stack buffer overflow for size_of 0 types in struct unmarshal
Diffstat (limited to 'core/encoding/json')
-rw-r--r--core/encoding/json/unmarshal.odin2
1 files changed, 1 insertions, 1 deletions
diff --git a/core/encoding/json/unmarshal.odin b/core/encoding/json/unmarshal.odin
index 33fd104b7..c70b8d39a 100644
--- a/core/encoding/json/unmarshal.odin
+++ b/core/encoding/json/unmarshal.odin
@@ -433,7 +433,7 @@ unmarshal_object :: proc(p: ^Parser, v: any, end_token: Token_Kind) -> (err: Unm
}
field_used_bytes := (reflect.size_of_typeid(ti.id)+7)/8
- field_used := intrinsics.alloca(field_used_bytes, 1)
+ field_used := intrinsics.alloca(field_used_bytes + 1, 1) // + 1 to not overflow on size_of 0 types.
intrinsics.mem_zero(field_used, field_used_bytes)
use_field_idx := -1