mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
sema: fix UAF in type mismatch error
This commit is contained in:
parent
29a1d0c06f
commit
d2b1aa48ab
1 changed files with 7 additions and 5 deletions
12
src/Sema.zig
12
src/Sema.zig
|
|
@ -2643,11 +2643,13 @@ pub fn fail(
|
||||||
}
|
}
|
||||||
|
|
||||||
fn failWithTypeMismatch(sema: *Sema, block: *Block, src: LazySrcLoc, expected: Type, found: Type) CompileError {
|
fn failWithTypeMismatch(sema: *Sema, block: *Block, src: LazySrcLoc, expected: Type, found: Type) CompileError {
|
||||||
const err_msg = try sema.typeMismatchErrMsg(src, expected, found);
|
return sema.failWithOwnedErrorMsg(block, msg: {
|
||||||
errdefer err_msg.destroy(sema.gpa);
|
const msg = try sema.typeMismatchErrMsg(src, expected, found);
|
||||||
try addDeclaredHereNote(sema, err_msg, expected);
|
errdefer msg.destroy(sema.gpa);
|
||||||
try addDeclaredHereNote(sema, err_msg, found);
|
try addDeclaredHereNote(sema, msg, expected);
|
||||||
return sema.failWithOwnedErrorMsg(block, err_msg);
|
try addDeclaredHereNote(sema, msg, found);
|
||||||
|
break :msg msg;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn failWithOwnedErrorMsg(sema: *Sema, block: ?*Block, err_msg: *Zcu.ErrorMsg) error{ AnalysisFail, OutOfMemory } {
|
pub fn failWithOwnedErrorMsg(sema: *Sema, block: ?*Block, err_msg: *Zcu.ErrorMsg) error{ AnalysisFail, OutOfMemory } {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue