summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2017-09-05 23:00:51 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2017-09-05 23:00:51 +0000
commit8db11a4f1ceff5b8c70cd1838db20c7983033bb7 (patch)
treecca46b22345d290c77ab5d622d5f305738d2d09a /llvm
parentc22c699882c8bf602063b43d6da3abb55dd30868 (diff)
downloadbcm5719-llvm-8db11a4f1ceff5b8c70cd1838db20c7983033bb7.tar.gz
bcm5719-llvm-8db11a4f1ceff5b8c70cd1838db20c7983033bb7.zip
Fix a use after free.
llvm-svn: 312590
Diffstat (limited to 'llvm')
-rw-r--r--llvm/tools/obj2yaml/elf2yaml.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/tools/obj2yaml/elf2yaml.cpp b/llvm/tools/obj2yaml/elf2yaml.cpp
index 3f33fbd7d68..b603cb84aea 100644
--- a/llvm/tools/obj2yaml/elf2yaml.cpp
+++ b/llvm/tools/obj2yaml/elf2yaml.cpp
@@ -80,11 +80,11 @@ ELFDumper<ELFT>::getUniquedSectionName(const Elf_Shdr *Sec) {
if (!NameOrErr)
return NameOrErr;
StringRef Name = *NameOrErr;
- std::string Ret = Name;
+ std::string &Ret = SectionNames[SecIndex];
+ Ret = Name;
while (!UsedSectionNames.insert(Ret).second)
Ret = (Name + to_string(++Suffix)).str();
- SectionNames[SecIndex] = Ret;
- return SectionNames[SecIndex];
+ return Ret;
}
template <class ELFT> ErrorOr<ELFYAML::Object *> ELFDumper<ELFT>::dump() {
OpenPOWER on IntegriCloud