diff options
author | Zhang Yu <zhangyub@uniontech.com> | 2020-12-30 10:57:09 +0800 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-01-06 03:06:52 +0000 |
commit | 7b356d73671fb7b097399bcde9d8855264625dac (patch) | |
tree | 46a5df1f4677c9bb820ac4be824f2cea75848593 /src | |
parent | 91a97187ac385c24344d1d062abe7c9d7611c1c4 (diff) |
Fix QMultiHash::equal_range crashes
QMultiHash::equal_range crashes when called in a const member function.
The Data `d` is a NULL pointer when calling equal_range()
before inserting data into an empty QMultiHash.
Then calling`d->find` crashes.
Fixes: QTBUG-89687
Change-Id: I10c3d196cbc72aed8c8c922ef16534bba51037b7
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
(cherry picked from commit 22416ecaaf58619c716229b71cdca558fda0a861)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/tools/qhash.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h index 70e98bed60..f7f9178c98 100644 --- a/src/corelib/tools/qhash.h +++ b/src/corelib/tools/qhash.h @@ -1849,6 +1849,9 @@ public: QPair<const_iterator, const_iterator> equal_range(const Key &key) const noexcept { + if (!d) + return qMakePair(end(), end()); + auto it = d->find(key); if (it.isUnused()) return qMakePair(end(), end()); |