authorgravatar for 51252236+xdBronch@users.noreply.github.comxdBronch <51252236+xdBronch@users.noreply.github.com> 2025-11-16 22:01:36-05:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2025-11-17 10:37:22+02:00
logd2b1aa48abf5ac14fbfc37c95561a3db4507f1c9
treeb337e5fd73b5f413a0e0c8073e7cb84ba792b7e4
parent29a1d0c06ff80836d744d2ab5db3626bf17fa0d1

sema: fix UAF in type mismatch error


1 files changed, 7 insertions(+), 5 deletions(-)

src/Sema.zig+7-5
......@@ -2643,11 +2643,13 @@ pub fn fail(
26432643}
26442644
26452645fn failWithTypeMismatch(sema: *Sema, block: *Block, src: LazySrcLoc, expected: Type, found: Type) CompileError {
2646 const err_msg = try sema.typeMismatchErrMsg(src, expected, found);
2647 errdefer err_msg.destroy(sema.gpa);
2648 try addDeclaredHereNote(sema, err_msg, expected);
2649 try addDeclaredHereNote(sema, err_msg, found);
2650 return sema.failWithOwnedErrorMsg(block, err_msg);
2646 return sema.failWithOwnedErrorMsg(block, msg: {
2647 const msg = try sema.typeMismatchErrMsg(src, expected, found);
2648 errdefer msg.destroy(sema.gpa);
2649 try addDeclaredHereNote(sema, msg, expected);
2650 try addDeclaredHereNote(sema, msg, found);
2651 break :msg msg;
2652 });
26512653}
26522654
26532655pub fn failWithOwnedErrorMsg(sema: *Sema, block: ?*Block, err_msg: *Zcu.ErrorMsg) error{ AnalysisFail, OutOfMemory } {