From cb6201715a7bcae2b278811186afc17a697b25f7 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 12 Sep 2023 13:32:14 -0700 Subject: InternPool: prevent anon struct UAF bugs with type safety Instead of using actual slices for InternPool.Key.AnonStructType, this commit changes to use Slice types instead, which store a long-lived index rather than a pointer. This is a follow-up to 7ef1eb1c27754cb0349fdc10db1f02ff2dddd99b. --- src/link/Dwarf.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/link/Dwarf.zig') diff --git a/src/link/Dwarf.zig b/src/link/Dwarf.zig index 252388cc8b..48c828e54a 100644 --- a/src/link/Dwarf.zig +++ b/src/link/Dwarf.zig @@ -327,7 +327,7 @@ pub const DeclState = struct { // DW.AT.name, DW.FORM.string try dbg_info_buffer.writer().print("{}\x00", .{ty.fmt(mod)}); - for (fields.types, 0..) |field_ty, field_index| { + for (fields.types.get(ip), 0..) |field_ty, field_index| { // DW.AT.member try dbg_info_buffer.append(@intFromEnum(AbbrevKind.struct_member)); // DW.AT.name, DW.FORM.string -- cgit v1.2.3