qt5base-lts/qmake
Giuseppe D'Angelo 33984e72ab QHash security fix (1/2): add global QHash seed
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 global integer, to be used as a seed for the hash
function itself. The seed is randomly initialized the first time a
QHash detaches from shared_null.

Right now the seed is not used at all -- another patch will modify
qHash to make use of it.

[1] http://www.cs.rice.edu/~scrosby/hash/CrosbyWallach_UsenixSec2003.pdf
[2] http://perldoc.perl.org/perlsec.html#Algorithmic-Complexity-Attacks
[3] http://www.ocert.org/advisories/ocert-2011-003.html

Task-number: QTBUG-23529
Change-Id: I7519e4c02b9c2794d1c14079b01330eb356e9c65
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-04-03 19:12:13 +02:00
..
generators Merge master into api_changes 2012-03-19 10:03:48 +01:00
cachekeys.h Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
CHANGES Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
main.cpp look for mkspecs in the project root, not next to every project 2012-02-29 00:05:38 +01:00
Makefile.unix Compile QArrayData in bootstrap phase. 2012-03-29 11:28:41 +02:00
Makefile.win32 Compile QArrayData in bootstrap phase. 2012-03-29 11:28:41 +02:00
Makefile.win32-g++ Compile QArrayData in bootstrap phase. 2012-03-29 11:28:41 +02:00
meta.cpp Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
meta.h Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
option.cpp don't add bogus /mkspecs to QMAKE_MKSPECS 2012-03-06 21:50:25 +01:00
option.h Merge remote-tracking branch 'origin/api_changes' 2012-03-04 21:45:05 +01:00
project.cpp Build qmake with QStringBuilder. 2012-03-16 23:02:15 +01:00
project.h do not re-evaluate spec+cache in build passes 2012-03-06 06:34:49 +01:00
property.cpp QT_RAW_INSTALL_FOO => QT_INSTALL_FOO/raw 2012-03-12 11:01:02 +01:00
property.h optimize QMakeProperty 2012-03-01 21:00:23 +01:00
qmake_pch.h QHash security fix (1/2): add global QHash seed 2012-04-03 19:12:13 +02:00
qmake.pri Compile QArrayData in bootstrap phase. 2012-03-29 11:28:41 +02:00
qmake.pro qmake: remove symbian support 2011-11-07 13:26:41 +01:00