From fb799608d49df1f25b12a6e0de93690a11928dde Mon Sep 17 00:00:00 2001 From: Zachary Turner Date: Fri, 27 May 2016 20:17:33 +0000 Subject: [PATCH] [pdb] Fix size check when reading stream bytes. We were accidentally bounds checking the read against the output ArrayRef instead of against the size of the read. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271040 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/DebugInfo/PDB/Raw/MappedBlockStream.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/DebugInfo/PDB/Raw/MappedBlockStream.cpp b/lib/DebugInfo/PDB/Raw/MappedBlockStream.cpp index a3db147f57e..acc92f90d26 100644 --- a/lib/DebugInfo/PDB/Raw/MappedBlockStream.cpp +++ b/lib/DebugInfo/PDB/Raw/MappedBlockStream.cpp @@ -26,9 +26,9 @@ MappedBlockStream::MappedBlockStream(uint32_t StreamIdx, const PDBFile &File) : Error MappedBlockStream::readBytes(uint32_t Offset, uint32_t Size, ArrayRef &Buffer) const { // Make sure we aren't trying to read beyond the end of the stream. - if (Buffer.size() > StreamLength) + if (Size > StreamLength) return make_error(raw_error_code::insufficient_buffer); - if (Offset > StreamLength - Buffer.size()) + if (Offset > StreamLength - Size) return make_error(raw_error_code::insufficient_buffer); if (tryReadContiguously(Offset, Size, Buffer))