Go to file
Simon Hausmann bdb81d0bd1 Avoid re-use of QFileSystemMetaData instance in dir entry listing
We've observed that on machines with SELinux installed but disabled, the
behavior of readdir() changes slightly. In the case of tst_qdir's
entryList QDir::Hidden test case, the listing of the directory contents
returns DT_UNKNOWN for the files and (broken) symlink(s) that are
present. When SELinux is enabled, we do see DT_REG and DT_LNK. Our
fallback to DT_UNKNOWN however resets merely the knownFlags, it does not
reset entryFlags, as all the other cases do.

The bug comes when QDirIteratorPrivate::advance() re-uses the
QFileSystemMetaData instance across iterations, and this way we get the
entryFlags values from a previous iteration (with != DT_UNKNOWN) into
the evaluation of an entry with DT_UNKNOWN.

The more conservative approach to fixing this is here by assuming that
QFileSystemMetaData is not designed for re-use and re-initialize it
explicitly in the iteration.

Change-Id: I875856f5ee63a7072d172033e90d02cf41bcab20
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-09-27 15:45:04 +00:00
bin Add a QT_REQUIRE_CONFIG(feature) macro 2016-09-16 12:27:59 +00:00
config.tests Merge remote-tracking branch 'origin/5.7' into 5.8 2016-09-21 11:57:52 +02:00
dist Merge remote-tracking branch 'origin/5.6' into 5.7 2016-09-16 23:16:25 +02:00
doc Say hello to Q_NAMESPACE 2016-08-19 15:41:27 +00:00
examples Modernize rasterwindow/openglwindow examples to use requestUpdate() 2016-09-22 16:45:15 +00:00
lib Purge all fonts 2015-08-18 19:59:14 +00:00
mkspecs Merge remote-tracking branch 'origin/5.7' into 5.8 2016-09-21 11:57:52 +02:00
qmake win32: Fix Visual Studio project generation 2016-09-22 09:36:18 +00:00
src Avoid re-use of QFileSystemMetaData instance in dir entry listing 2016-09-27 15:45:04 +00:00
tests Fix test for targets without process support 2016-09-23 07:32:44 +00:00
tools Merge remote-tracking branch 'origin/5.6' into 5.7 2016-09-16 23:16:25 +02:00
util Handle indirect sibling selector 2016-07-27 20:18:02 +00:00
.gitattributes Update the git-archive export options 2012-09-07 15:39:31 +02:00
.gitignore Merge remote-tracking branch 'origin/5.7' into 5.8 2016-08-29 15:30:17 +02:00
.qmake.conf Merge remote-tracking branch 'origin/5.7' into dev 2016-05-23 21:09:46 +02:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
config_help.txt add configure test result caching 2016-08-19 04:28:55 +00:00
configure Convert the old feature system 2016-09-15 08:24:10 +00:00
configure.bat don't rely on configure.exe being in source packages any more 2016-08-26 14:22:51 +00:00
configure.json Convert the old feature system 2016-09-15 08:24:10 +00:00
configure.pri Convert the old feature system 2016-09-15 08:24:10 +00:00
header.BSD Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.BSD-OLD Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.COMM Add header template for commercial only modules 2015-10-19 10:37:18 +00:00
header.FDL Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.FDL-OLD Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.GPL Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.GPL-EXCEPT Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.LGPL Add new license header templates and license files 2016-01-14 20:43:46 +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-NOGPL2 Add new license header templates and license files 2016-01-14 20:43:46 +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 Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.GPL2 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPL3 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPL3-EXCEPT Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPLv3 Expand license scope from "Qt GUI Toolkit" to "Qt Toolkit" 2016-06-15 07:02:32 +00:00
LICENSE.LGPL3 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.LGPLv3 Expand license scope from "Qt GUI Toolkit" to "Qt Toolkit" 2016-06-15 07:02:32 +00:00
LICENSE.LGPLv21 Expand license scope from "Qt GUI Toolkit" to "Qt Toolkit" 2016-06-15 07:02:32 +00:00
LICENSE.PREVIEW.COMMERCIAL Add new license header templates and license files 2016-01-14 20:43:46 +00:00
qtbase.pro Convert the old feature system 2016-09-15 08:24:10 +00:00
sync.profile Convert the old feature system 2016-09-15 08:24:10 +00:00