diff options
author | Mårten Nordheim <marten.nordheim@qt.io> | 2022-02-15 14:23:31 +0100 |
---|---|---|
committer | Mårten Nordheim <marten.nordheim@qt.io> | 2022-02-16 18:22:28 +0100 |
commit | 8e6e090813158ade2598036773d0ecda6817ab7f (patch) | |
tree | 84fc0dd4a5906b3e47537e5662c615324613619a | |
parent | d9504b2219db35d154ee2211ef9807c48c1ce41b (diff) | |
download | qtbase-8e6e090813158ade2598036773d0ecda6817ab7f.tar.gz |
QHash: fix off-by-one in assertions
Coverity-Id: 378365
Coverity-Id: 378366
Coverity-Id: 378399
Coverity-Id: 378427
Coverity-Id: 378468
Coverity-Id: 378472
Change-Id: Ib1efeacb59030b9d004320e56f560367f564d207
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry picked from commit a1fb3971f222afa01583e41f4d8f0e037d2c7892)
-rw-r--r-- | src/corelib/tools/qhash.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h index 831a11be59..3190a2e34e 100644 --- a/src/corelib/tools/qhash.h +++ b/src/corelib/tools/qhash.h @@ -331,7 +331,7 @@ struct Span { } Node *insert(size_t i) { - Q_ASSERT(i <= NEntries); + Q_ASSERT(i < NEntries); Q_ASSERT(offsets[i] == UnusedEntry); if (nextFree == allocated) addStorage(); @@ -343,7 +343,7 @@ struct Span { } void erase(size_t bucket) noexcept(std::is_nothrow_destructible<Node>::value) { - Q_ASSERT(bucket <= NEntries); + Q_ASSERT(bucket < NEntries); Q_ASSERT(offsets[bucket] != UnusedEntry); unsigned char entry = offsets[bucket]; @@ -363,14 +363,14 @@ struct Span { } Node &at(size_t i) noexcept { - Q_ASSERT(i <= NEntries); + Q_ASSERT(i < NEntries); Q_ASSERT(offsets[i] != UnusedEntry); return entries[offsets[i]].node(); } const Node &at(size_t i) const noexcept { - Q_ASSERT(i <= NEntries); + Q_ASSERT(i < NEntries); Q_ASSERT(offsets[i] != UnusedEntry); return entries[offsets[i]].node(); @@ -396,9 +396,9 @@ struct Span { } void moveFromSpan(Span &fromSpan, size_t fromIndex, size_t to) noexcept(std::is_nothrow_move_constructible_v<Node>) { - Q_ASSERT(to <= NEntries); + Q_ASSERT(to < NEntries); Q_ASSERT(offsets[to] == UnusedEntry); - Q_ASSERT(fromIndex <= NEntries); + Q_ASSERT(fromIndex < NEntries); Q_ASSERT(fromSpan.offsets[fromIndex] != UnusedEntry); if (nextFree == allocated) addStorage(); |