From 7edd332993b485ebdd81ccce5af5dacb16e72156 Mon Sep 17 00:00:00 2001 From: Laytan Laats Date: Fri, 6 Dec 2024 22:12:52 +0100 Subject: fix #4536 - stack buffer overflow for size_of 0 types in struct unmarshal --- core/encoding/json/unmarshal.odin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'core/encoding') 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 -- cgit v1.2.3