Go to file
Marc Mutz 1e2b42523f Fix UB in tst_QObject::disconnectDoesNotLeakFunctor()
If CountedStruct is passed a GetSenderObject object,
it will attempt to call a member on it from within
its own destructor.

That works usually quite well, but in this test case,
which tests for function object leaks when a connection
is torn down because the sender object is destroyed,
the destruction of the CountedStruct happens when all
connections are severed in ~QObject. At that point,
what used to be a GetSenderObject instance no longer
is one and the call into one of its member functions
invokes undefined behavior.

Fix by making QObject::sender() public by a using
declaration instead of a wrapper function.

Found by UBSan:
  tests/auto/corelib/kernel/qobject/tst_qobject.cpp:6007:104: runtime error: member call on address 0x7ffc6e7538b0 which does not point to an object of type 'GetSenderObject'
  0x7ffc6e7538b0: note: object is of type 'QObject'

Change-Id: Ia973140037b3c1b5a670a8a3949d09b956f40349
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-01-09 15:18:50 +00:00
bin fixqt4headers.pl: Improve detection of Qt 5 location. 2015-04-22 10:23:41 +00:00
config.tests Remove "FOO module" from config.tests/common 2015-12-04 05:20:29 +00:00
dist Update the Qt 5.5.1 changelog for qtbase 2015-09-23 06:49:28 +00:00
doc Add shader files to examples documentation file list 2015-09-22 21:40:13 +00:00
examples Use unique shortcuts for the different actions 2015-12-11 09:40:55 +00:00
lib
mkspecs qt_functions.prf: Add missing $$eval 2016-01-05 19:09:12 +00:00
qmake Add support for -Zc:throwingNew option to vcxproj generation for 2015 2015-10-23 13:03:12 +00:00
src Add missing qxml_p.h to src/xml/sax/sax.pri 2016-01-06 13:55:49 +00:00
tests Fix UB in tst_QObject::disconnectDoesNotLeakFunctor() 2016-01-09 15:18:50 +00:00
tools Auto-detect whether 64-bit std::atomic really works 2015-12-04 05:20:26 +00:00
util Fix typo when resolving EGL extension. 2015-04-23 11:54:36 +00:00
.gitattributes Update the git-archive export options 2012-09-07 15:39:31 +02:00
.gitignore Remove qtdemo from gitignore 2014-09-17 12:38:55 +02:00
.qmake.conf Enable -Werror for all of qtbase 2013-09-04 01:50:10 +02:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
configure fix quoting in makeabs() 2016-01-08 12:40:14 +00:00
configure.bat Use jom instead of nmake to compile configure.exe 2015-07-21 22:50:30 +00:00
header.BSD Updated BSD licensed file headers 2015-02-15 07:41:17 +00:00
header.FDL Update copyright headers 2015-02-11 06:49:51 +00:00
header.LGPL3 Update copyright headers 2015-02-11 06:49:51 +00:00
header.LGPL3-COMM Update copyright headers 2015-02-11 06:49:51 +00:00
header.LGPL21 Update copyright headers 2015-02-11 06:49:51 +00:00
header.LGPL-ONLY Update copyright headers 2015-02-11 06:49:51 +00:00
INSTALL Doc: Update links in INSTALL file 2015-02-16 09:06:41 +00:00
LGPL_EXCEPTION.txt Update copyright headers 2015-02-11 06:49:51 +00:00
LICENSE.FDL
LICENSE.GPLv3 fix up license references 2015-08-13 11:13:09 +00:00
LICENSE.LGPLv3 fix up license references 2015-08-13 11:13:09 +00:00
LICENSE.LGPLv21 Update copyright headers 2015-02-11 06:49:51 +00:00
LICENSE.PREVIEW.COMMERCIAL Update copyright headers 2015-02-11 06:49:51 +00:00
qtbase.pro Avoid qtbase/bin/bin artifact when running make install 2015-06-03 04:27:49 +00:00
sync.profile ANGLE: upgrade to 2.1~07d49ef5350a 2014-08-05 16:43:22 +02:00