authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-06-02 05:07:07-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-06-10 20:47:59-07:00
log7a59cd286345470412b4880ca576553c7d5827eb
tree9418bf6740c876b34e1da7bac294ebbf8faa5b5d
parentda24ea7f36d056cb49e8e91064f06cb724e46f67

Sema: hack around UAF


1 files changed, 3 insertions(+), 2 deletions(-)

src/Sema.zig+3-2
......@@ -26792,11 +26792,12 @@ fn coerceValueInMemory(
2679226792 else => unreachable,
2679326793 };
2679426794 if (src_ty_child != dst_ty_child) break :direct;
26795 // TODO: write something like getCoercedInts to avoid needing to dupe
2679526796 return (try mod.intern(.{ .aggregate = .{
2679626797 .ty = dst_ty.toIntern(),
2679726798 .storage = switch (aggregate.storage) {
26798 .bytes => |bytes| .{ .bytes = bytes[0..dest_len] },
26799 .elems => |elems| .{ .elems = elems[0..dest_len] },
26799 .bytes => |bytes| .{ .bytes = try sema.arena.dupe(u8, bytes[0..dest_len]) },
26800 .elems => |elems| .{ .elems = try sema.arena.dupe(InternPool.Index, elems[0..dest_len]) },
2680026801 .repeated_elem => |elem| .{ .repeated_elem = elem },
2680126802 },
2680226803 } })).toValue();