Sema: hack around UAF

This commit is contained in:
Jacob Young 2023-06-02 05:07:07 -04:00 committed by Andrew Kelley
parent da24ea7f36
commit 7a59cd2863

View File

@ -26792,11 +26792,12 @@ fn coerceValueInMemory(
else => unreachable,
};
if (src_ty_child != dst_ty_child) break :direct;
// TODO: write something like getCoercedInts to avoid needing to dupe
return (try mod.intern(.{ .aggregate = .{
.ty = dst_ty.toIntern(),
.storage = switch (aggregate.storage) {
.bytes => |bytes| .{ .bytes = bytes[0..dest_len] },
.elems => |elems| .{ .elems = elems[0..dest_len] },
.bytes => |bytes| .{ .bytes = try sema.arena.dupe(u8, bytes[0..dest_len]) },
.elems => |elems| .{ .elems = try sema.arena.dupe(InternPool.Index, elems[0..dest_len]) },
.repeated_elem => |elem| .{ .repeated_elem = elem },
},
} })).toValue();