[PATCH] D129840: Avoid UAF in WinCOFFObjectWriter with weak symbols.
Tim Besard via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 15 09:22:32 PDT 2022
maleadt updated this revision to Diff 445017.
maleadt added a comment.
Fix tests again.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D129840/new/
https://reviews.llvm.org/D129840
Files:
llvm/lib/MC/WinCOFFObjectWriter.cpp
llvm/test/MC/COFF/weak-uaf.ll
Index: llvm/test/MC/COFF/weak-uaf.ll
===================================================================
--- /dev/null
+++ llvm/test/MC/COFF/weak-uaf.ll
@@ -0,0 +1,12 @@
+; RUN: llc --compile-twice -mtriple=x86_64-pc-win32 -filetype=obj < %s
+
+; UAF when re-using the MCObjectWriter. does not leak into the output,
+; but should be detectable with --compile-twice under ASAN or so.
+
+define weak void @foo() nounwind {
+ ret void
+}
+
+define weak void @bar() nounwind {
+ ret void
+}
Index: llvm/lib/MC/WinCOFFObjectWriter.cpp
===================================================================
--- llvm/lib/MC/WinCOFFObjectWriter.cpp
+++ llvm/lib/MC/WinCOFFObjectWriter.cpp
@@ -169,6 +169,7 @@
Strings.clear();
SectionMap.clear();
SymbolMap.clear();
+ WeakDefaults.clear();
MCObjectWriter::reset();
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D129840.445017.patch
Type: text/x-patch
Size: 835 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220715/fc0d00af/attachment.bin>
More information about the llvm-commits
mailing list