diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2017-09-05 23:00:51 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2017-09-05 23:00:51 +0000 |
commit | 8db11a4f1ceff5b8c70cd1838db20c7983033bb7 (patch) | |
tree | cca46b22345d290c77ab5d622d5f305738d2d09a /llvm | |
parent | c22c699882c8bf602063b43d6da3abb55dd30868 (diff) | |
download | bcm5719-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.cpp | 6 |
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() { |