diff options
| author | David Majnemer <david.majnemer@gmail.com> | 2016-05-27 16:16:45 +0000 | 
|---|---|---|
| committer | David Majnemer <david.majnemer@gmail.com> | 2016-05-27 16:16:45 +0000 | 
| commit | 5d842ea68ed1ba4e83b96d19beb8ab5d72b18677 (patch) | |
| tree | 5358c5a9d7b6c4d49f4a55514720a922050606f3 /llvm/lib/DebugInfo | |
| parent | ed8c1beefbe7b67bcfcecfbb1ea33a196f3f6861 (diff) | |
| download | bcm5719-llvm-5d842ea68ed1ba4e83b96d19beb8ab5d72b18677.tar.gz bcm5719-llvm-5d842ea68ed1ba4e83b96d19beb8ab5d72b18677.zip | |
Make sure the directory block array fits in the file
llvm-svn: 271011
Diffstat (limited to 'llvm/lib/DebugInfo')
| -rw-r--r-- | llvm/lib/DebugInfo/PDB/Raw/PDBFile.cpp | 4 | 
1 files changed, 4 insertions, 0 deletions
| diff --git a/llvm/lib/DebugInfo/PDB/Raw/PDBFile.cpp b/llvm/lib/DebugInfo/PDB/Raw/PDBFile.cpp index b04ccab0cb4..65ddccaed02 100644 --- a/llvm/lib/DebugInfo/PDB/Raw/PDBFile.cpp +++ b/llvm/lib/DebugInfo/PDB/Raw/PDBFile.cpp @@ -174,6 +174,10 @@ Error PDBFile::parseFileHeaders() {      return make_error<RawError>(raw_error_code::corrupt_file,                                  "Too many directory blocks."); +  // Make sure the directory block array fits within the file. +  if (auto EC = checkOffset(BufferRef, getDirectoryBlockArray())) +    return EC; +    return Error::success();  } | 

