summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qfilesystemmetadata_p.h
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2014-09-20 17:23:31 +0200
committerOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2014-10-13 13:53:17 +0200
commit26fbeecfa55ee3250c81da6d2e14567ec2051e23 (patch)
tree3da59301f00ebbffbf5f5f6d3fe8d55f4e853fb6 /src/corelib/io/qfilesystemmetadata_p.h
parentec68f67ee55944e1f05bdbe1362832ee2ab156c7 (diff)
Initialize QFileSystemMetaData::size_ data member
There's a code path which reads that member before it got anything assigned to it, triggering undefined behavior. The code path goes as follows: 1. an instance is created in QFSFileEngineIterator::advance 2. the instance is passed to QFileSystemIterator::advance, which fills in only some members (not size_) 3. the instance is passed to QFileInfoPrivate which does a deep copy, reading an uninitialized size_ Change-Id: I6835ee701a83b63ca4bad6235feeb6a23566fcd3 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/io/qfilesystemmetadata_p.h')
-rw-r--r--src/corelib/io/qfilesystemmetadata_p.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h
index de79ec32d3..27e2dac2e4 100644
--- a/src/corelib/io/qfilesystemmetadata_p.h
+++ b/src/corelib/io/qfilesystemmetadata_p.h
@@ -74,7 +74,8 @@ class QFileSystemMetaData
{
public:
QFileSystemMetaData()
- : knownFlagsMask(0)
+ : knownFlagsMask(0),
+ size_(-1)
{
}