path: root/dist
diff options
authorGiuseppe D'Angelo <>2012-03-24 08:50:02 +0000
committerQt by Nokia <>2012-04-04 13:02:58 +0200
commit9a77171ccc2838c2fd7b666ed9ee9c7ba8ebd488 (patch)
treec2b090636b77d3019b3da9389c596d3753b526f7 /dist
parentfb20f9c2da369b07fc50857a90b596ae63f943da (diff)
QHash security fix (1.5/2): qHash two arguments overload support
Algorithmic complexity attacks against hash tables have been known since 2003 (cf. [1, 2]), and they have been left unpatched for years until the 2011 attacks [3] against many libraries / (reference) implementations of programming languages. This patch adds a qHash overload taking two arguments: the value to be hashed, and a uint to be used as a seed for the hash function itself (support the global QHash seed was added in a previous patch). The seed itself is not used just yet; instead, 0 is passed. Compatibility with the one-argument qHash(T) implementation is kept through a catch-all template. [1] [2] [3] Task-number: QTBUG-23529 Change-Id: I1d0a84899476d134db455418c8043a349a7e5317 Reviewed-by: João Abecasis <>
Diffstat (limited to 'dist')
1 files changed, 4 insertions, 0 deletions
diff --git a/dist/changes-5.0.0 b/dist/changes-5.0.0
index 1258792029..cfb83a4093 100644
--- a/dist/changes-5.0.0
+++ b/dist/changes-5.0.0
@@ -346,6 +346,10 @@ QtCore
* QEvent::AccessibilityPrepare, AccessibilityHelp and AccessibilityDescription removed:
* The enum values simply didn't make sense in the first place and should simply be dropped.
+* [QTBUG-23529] QHash is now more resilient to a family of denial of service
+ attacks exploiting algorithmic complexity, by supporting two-arguments overloads
+ of the qHash() hashing function.
* Accessibility has been refactored. The hierachy of accessible objects is implemented via