Преглед изворни кода

fix #4536 - stack buffer overflow for size_of 0 types in struct unmarshal

Laytan Laats пре 9 месеци
родитељ
комит
7edd332993
1 измењених фајлова са 1 додато и 1 уклоњено
  1. 1 1
      core/encoding/json/unmarshal.odin

+ 1 - 1
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