diff options
| author | Laytan Laats <laytanlaats@hotmail.com> | 2024-12-06 22:12:52 +0100 |
|---|---|---|
| committer | Laytan Laats <laytanlaats@hotmail.com> | 2024-12-06 22:12:52 +0100 |
| commit | 7edd332993b485ebdd81ccce5af5dacb16e72156 (patch) | |
| tree | bc8cf3c46b5528206f2b4a502ee498f05c4596c0 /core/encoding/json | |
| parent | 676fe34863c9332a49e2b5e659960caa5aa4d325 (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.odin | 2 |
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 |