diff options
author | Rui Ueyama <ruiu@google.com> | 2015-06-18 20:29:41 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2015-06-18 20:29:41 +0000 |
commit | 223fe1b9e71245c7f481d08a76f781a51a2ed831 (patch) | |
tree | 21e54fdb9e6b0dd785fb91a2da45e8b74e93e26c | |
parent | b95188cb2c820ca6e124ec993b62176355d6f2af (diff) | |
download | bcm5719-llvm-223fe1b9e71245c7f481d08a76f781a51a2ed831.tar.gz bcm5719-llvm-223fe1b9e71245c7f481d08a76f781a51a2ed831.zip |
COFF: Fix unsafe memory access.
llvm-svn: 240046
-rw-r--r-- | lld/COFF/InputFiles.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lld/COFF/InputFiles.cpp b/lld/COFF/InputFiles.cpp index 6d084bb2473..1d4db89653e 100644 --- a/lld/COFF/InputFiles.cpp +++ b/lld/COFF/InputFiles.cpp @@ -256,12 +256,13 @@ std::error_code BitcodeFile::parse() { return make_error_code(LLDError::BrokenFile); } + llvm::BumpPtrStringSaver Saver(Alloc); for (unsigned I = 0, E = M->getSymbolCount(); I != E; ++I) { lto_symbol_attributes Attrs = M->getSymbolAttributes(I); if ((Attrs & LTO_SYMBOL_SCOPE_MASK) == LTO_SYMBOL_SCOPE_INTERNAL) continue; - StringRef SymName = M->getSymbolName(I); + StringRef SymName = Saver.save(M->getSymbolName(I)); int SymbolDef = Attrs & LTO_SYMBOL_DEFINITION_MASK; if (SymbolDef == LTO_SYMBOL_DEFINITION_UNDEFINED) { SymbolBodies.push_back(new (Alloc) Undefined(SymName)); |