diff options
Diffstat (limited to 'lib/Lex/HeaderMap.cpp')
-rw-r--r-- | lib/Lex/HeaderMap.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Lex/HeaderMap.cpp b/lib/Lex/HeaderMap.cpp index d058e1ece4..0b75af54d1 100644 --- a/lib/Lex/HeaderMap.cpp +++ b/lib/Lex/HeaderMap.cpp @@ -142,8 +142,11 @@ HMapBucket HeaderMap::getBucket(unsigned BucketNo) const { sizeof(HMapHeader)); const HMapBucket *BucketPtr = BucketArray+BucketNo; - if ((char*)(BucketPtr+1) > FileBuffer->getBufferEnd()) + if ((char*)(BucketPtr+1) > FileBuffer->getBufferEnd()) { + Result.Prefix = 0; + Result.Suffix = 0; return Result; // Invalid buffer, corrupt hmap. + } // Otherwise, the bucket is valid. Load the values, bswapping as needed. Result.Key = getEndianAdjustedWord(BucketPtr->Key); |