diff options
author | Anna Zaks <ganna@apple.com> | 2013-12-19 02:35:26 +0000 |
---|---|---|
committer | Anna Zaks <ganna@apple.com> | 2013-12-19 02:35:26 +0000 |
commit | 629f3b229e58bd930f87a9a3c01aec52daf5bc87 (patch) | |
tree | 11626d5df649f67d37d3bd14599e2c536f67840c /include/llvm/ADT/BitVector.h | |
parent | 33f01f9848bacd31cec613d1b4341e24eb527845 (diff) | |
download | llvm-629f3b229e58bd930f87a9a3c01aec52daf5bc87.tar.gz llvm-629f3b229e58bd930f87a9a3c01aec52daf5bc87.tar.bz2 llvm-629f3b229e58bd930f87a9a3c01aec52daf5bc87.tar.xz |
Fix a buffer overrun detected by AddressSanitizer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197647 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/ADT/BitVector.h')
-rw-r--r-- | include/llvm/ADT/BitVector.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/include/llvm/ADT/BitVector.h b/include/llvm/ADT/BitVector.h index 8fb538f68f..6f69aba7c0 100644 --- a/include/llvm/ADT/BitVector.h +++ b/include/llvm/ADT/BitVector.h @@ -267,7 +267,8 @@ public: Bits[I / BITWORD_SIZE] = ~0UL; BitWord PostfixMask = (1UL << (E % BITWORD_SIZE)) - 1; - Bits[I / BITWORD_SIZE] |= PostfixMask; + if (I < E) + Bits[I / BITWORD_SIZE] |= PostfixMask; return *this; } @@ -305,7 +306,8 @@ public: Bits[I / BITWORD_SIZE] = 0UL; BitWord PostfixMask = (1UL << (E % BITWORD_SIZE)) - 1; - Bits[I / BITWORD_SIZE] &= ~PostfixMask; + if (I < E) + Bits[I / BITWORD_SIZE] &= ~PostfixMask; return *this; } |