From cb4197f6218bb26900085779bf0cf161535dfbde Mon Sep 17 00:00:00 2001 From: Xinliang David Li Date: Sun, 20 Dec 2015 08:46:18 +0000 Subject: [PATCH] Fix a latent UAF bug in profwriter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256116 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/ProfileData/InstrProfWriter.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/ProfileData/InstrProfWriter.cpp b/lib/ProfileData/InstrProfWriter.cpp index 1e18c268892..9bb03e1e77a 100644 --- a/lib/ProfileData/InstrProfWriter.cpp +++ b/lib/ProfileData/InstrProfWriter.cpp @@ -108,6 +108,8 @@ std::error_code InstrProfWriter::addRecord(InstrProfRecord &&I, if (NewFunc) { // We've never seen a function with this name and hash, add it. Dest = std::move(I); + // Fix up the name to avoid dangling reference. + Dest.Name = FunctionData.find(Dest.Name)->getKey(); Result = instrprof_error::success; if (Weight > 1) { for (auto &Count : Dest.Counts) { -- 2.34.1