llvm-project/llvm/tools
Zachary Turner 5b74ff33e7 [PDB] Fix use after free.
Previously MappedBlockStream owned its own BumpPtrAllocator that
it would allocate from when a read crossed a block boundary.  This
way it could still return the user a contiguous buffer of the
requested size.  However, It's not uncommon to open a stream, read
some stuff, close it, and then save the information for later.
After all, since the entire file is mapped into memory, the data
should always be available as long as the file is open.

Of course, the exception to this is when the data isn't *in* the
file, but rather in some buffer that we temporarily allocated to
present this contiguous view.  And this buffer would get destroyed
as soon as the strema was closed.

The fix here is to force the user to specify the allocator, this
way it can provide an allocator that has whatever lifetime it
chooses.

Differential Revision: https://reviews.llvm.org/D33858

llvm-svn: 304623
2017-06-03 00:33:35 +00:00
..
bugpoint Prefer static namespace-scoped variables over anon namespacing per style guide 2017-06-01 19:20:26 +00:00
bugpoint-passes [CMake] bugpoint-passes depends on intrinsics_gen 2016-11-19 02:20:59 +00:00
dsymutil [DWARF] - Take relocations in account when extracting ranges from .debug_ranges 2017-04-24 10:19:45 +00:00
gold Infer relocation model from module flags in relocatable LTO link. 2017-05-22 21:11:35 +00:00
llc RegisterScavenging: Add ScavengerTest pass 2017-06-02 23:01:42 +00:00
lli [ExecutionEngine] Make RuntimeDyld::MemoryManager responsible for tracking EH 2017-05-09 21:32:18 +00:00
llvm-ar Move lib/LibDriver -> lib/ToolDrivers/llvm-lib. NFCI. 2017-05-13 22:06:46 +00:00
llvm-as [CMake] llvm-as depends on intrinsics_gen 2016-11-19 02:15:04 +00:00
llvm-as-fuzzer Remove every uses of getGlobalContext() in LLVM (but the C API) 2016-04-14 21:59:01 +00:00
llvm-bcanalyzer Bitcode: Add a string table to the bitcode format. 2017-04-17 17:51:36 +00:00
llvm-c-test Spelling mistakes in comments. NFCI. 2017-03-30 12:59:53 +00:00
llvm-cat Bitcode: Add a string table to the bitcode format. 2017-04-17 17:51:36 +00:00
llvm-config [llvm-config] Don't use PATH_MAX 2017-06-01 20:51:55 +00:00
llvm-cov [ProfileData] Unify getInstrProf*SectionName helpers 2017-04-15 00:09:57 +00:00
llvm-cvtres Adding parsing ability for .res file. 2017-05-30 18:19:06 +00:00
llvm-cxxdump Make the Error class constructor protected 2016-11-11 04:28:40 +00:00
llvm-cxxfilt c++filt: support COFF import thunks 2017-03-22 21:15:19 +00:00
llvm-diff [IR] Redesign the case iterator in SwitchInst to actually be an iterator 2017-04-12 07:27:28 +00:00
llvm-dis [CMake] llvm-dis depends on intrinsics_gen 2016-11-19 02:31:14 +00:00
llvm-dwarfdump [DWARF] Introduce Dump Options 2017-06-01 18:18:23 +00:00
llvm-dwp [lib/Object] - Minor API update for llvm::Decompressor. 2017-05-18 08:00:01 +00:00
llvm-extract [llvm-extract] Add option for recursive extraction 2017-04-06 20:51:40 +00:00
llvm-go [llvm-go] parameterize $GOPATH construction 2016-07-27 03:21:51 +00:00
llvm-jitlistener Search for llvm-symbolizer binary in the same directory as argv[0], before 2016-06-09 00:53:21 +00:00
llvm-link Re-apply r302108, "IR: Use pointers instead of GUIDs to represent edges in the module summary. NFCI." 2017-05-04 18:03:25 +00:00
llvm-lto Rewrite llvm-lto's codegen() using ThinCodeGenerator::run(). NFC-ish. 2017-05-19 17:54:58 +00:00
llvm-lto2 [ThinLTO] Move -lto-use-new-pm to llvm-lto2, and change it to -use-new-pm. 2017-06-01 23:13:44 +00:00
llvm-mc [DWARFv5] llvm-mc support for new unit header. 2017-02-28 23:40:46 +00:00
llvm-mc-assemble-fuzzer llvm-mc-fuzzer: add support for assembly 2017-02-27 06:22:17 +00:00
llvm-mc-disassemble-fuzzer llvm-mc-fuzzer: add support for assembly 2017-02-27 06:22:17 +00:00
llvm-mcmarkup Search for llvm-symbolizer binary in the same directory as argv[0], before 2016-06-09 00:53:21 +00:00
llvm-modextract Bitcode: Add a string table to the bitcode format. 2017-04-17 17:51:36 +00:00
llvm-nm Print symbols from COFF import libraries. 2017-05-24 23:40:36 +00:00
llvm-objdump [DWARF] Introduce Dump Options 2017-06-01 18:18:23 +00:00
llvm-opt-report [llvm-opt-report] Fix context-sensitive lines where nothing happened 2017-01-07 20:21:17 +00:00
llvm-pdbdump [PDB] Fix use after free. 2017-06-03 00:33:35 +00:00
llvm-profdata Fix a couple of typos in memory intrinsic optimization output (NFC) 2017-05-24 17:55:25 +00:00
llvm-readobj [CodeView] Properly align symbol records on read/write. 2017-06-01 21:52:41 +00:00
llvm-rtdyld [ExecutionEngine] Make RuntimeDyld::MemoryManager responsible for tracking EH 2017-05-09 21:32:18 +00:00
llvm-shlib CMake: Add LLVM_DYLIB_SYMBOL_VERSIONING option 2017-05-03 14:43:44 +00:00
llvm-size llvm-size: remove leading dash in '-radix' option 2016-12-23 23:55:08 +00:00
llvm-split [CMake] llvm-split depends on intrinsics_gen 2016-11-18 23:20:38 +00:00
llvm-stress Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
llvm-strings llvm-strings: remove default for -Wcovered-switch-default 2017-01-21 02:52:29 +00:00
llvm-symbolizer Add a verbose/human readable mode to llvm-symbolizer to investigate discriminators and other line table/backtrace features 2017-01-31 22:19:38 +00:00
llvm-xray [XRay][tools] Remove wayward semicolon (NFC) 2017-04-26 03:49:49 +00:00
lto Spelling mistakes in comments. NFCI. 2017-03-30 12:59:53 +00:00
msbuild Create msbuild only when using MSVC 2017-03-16 20:24:14 +00:00
obj2yaml Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC. 2017-05-31 01:54:18 +00:00
opt [ThinLTO] Migrate ThinLTOBitcodeWriter to the new PM. 2017-06-01 01:02:12 +00:00
sancov [sancov] Fix broken links and displaced coloring in coverage-report-server.py 2017-03-20 14:06:04 +00:00
sanstats [CMake] sanstats depends on intrinsics_gen 2016-11-18 23:30:39 +00:00
verify-uselistorder [CMake] verify-uselistorder depends on intrinsics_gen 2016-11-18 23:30:58 +00:00
xcode-toolchain [CMake] Minor fix to regex in r279152 2016-08-18 21:36:36 +00:00
yaml2obj [WebAssembly] Fix build error in wasm YAML code 2017-05-10 00:14:04 +00:00
CMakeLists.txt Fixup r271533, or check-clang didn't find llvm-lto as the target. 2016-06-02 20:39:24 +00:00
LLVMBuild.txt Add llvm-cvtres to LLVMBuild.txt 2017-04-21 17:37:31 +00:00