Skip to content

Commit d69b0c7

Browse files
committed
Attempt to fix UAF
1 parent 1e16533 commit d69b0c7

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

clang/lib/Frontend/ASTUnit.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -863,8 +863,11 @@ std::unique_ptr<ASTUnit> ASTUnit::LoadFromASTFile(
863863
// explicitly forward the buffer.
864864
if (Filename == "-")
865865
if (auto FE = llvm::expectedToOptional(TmpFileMgr.getSTDIN()))
866-
if (auto Buf = TmpFileMgr.getBufferForFile(*FE))
867-
AST->Reader->getModuleManager().addInMemoryBuffer("-", std::move(*Buf));
866+
if (auto BufRef = TmpFileMgr.getBufferForFile(*FE)) {
867+
auto Buf = llvm::MemoryBuffer::getMemBufferCopy(
868+
(*BufRef)->getBuffer(), (*BufRef)->getBufferIdentifier());
869+
AST->Reader->getModuleManager().addInMemoryBuffer("-", std::move(Buf));
870+
}
868871

869872
// Reinstate the provided options that are relevant for reading AST files.
870873
AST->HSOpts->ForceCheckCXX20ModulesInputFiles =

0 commit comments

Comments
 (0)