summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/corelib/io/qfileinfo.cpp9
-rw-r--r--src/corelib/io/qfilesystemengine_unix.cpp5
-rw-r--r--src/corelib/io/qfilesystemengine_win.cpp5
3 files changed, 14 insertions, 5 deletions
diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp
index 3a67b7061f..b58c3d3032 100644
--- a/src/corelib/io/qfileinfo.cpp
+++ b/src/corelib/io/qfileinfo.cpp
@@ -1259,7 +1259,8 @@ QDateTime QFileInfo::created() const
return QDateTime();
if (d->fileEngine == 0) {
if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::CreationTime))
- QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::CreationTime);
+ if (!QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::CreationTime))
+ return QDateTime();
return d->metaData.creationTime();
}
return d->getFileTime(QAbstractFileEngine::CreationTime);
@@ -1277,7 +1278,8 @@ QDateTime QFileInfo::lastModified() const
return QDateTime();
if (d->fileEngine == 0) {
if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::ModificationTime))
- QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::ModificationTime);
+ if (!QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::ModificationTime))
+ return QDateTime();
return d->metaData.modificationTime();
}
return d->getFileTime(QAbstractFileEngine::ModificationTime);
@@ -1298,7 +1300,8 @@ QDateTime QFileInfo::lastRead() const
return QDateTime();
if (d->fileEngine == 0) {
if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::AccessTime))
- QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::AccessTime);
+ if (!QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::AccessTime))
+ return QDateTime();
return d->metaData.accessTime();
}
return d->getFileTime(QAbstractFileEngine::AccessTime);
diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp
index 3d75b8cb09..4c295b157c 100644
--- a/src/corelib/io/qfilesystemengine_unix.cpp
+++ b/src/corelib/io/qfilesystemengine_unix.cpp
@@ -467,7 +467,10 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM
data.knownFlagsMask |= QFileSystemMetaData::BundleType;
}
#endif
-
+ if (!entryExists) {
+ data.clearFlags(what);
+ return false;
+ }
return data.hasFlags(what);
}
diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp
index 6041edb252..ae8638ed5e 100644
--- a/src/corelib/io/qfilesystemengine_win.cpp
+++ b/src/corelib/io/qfilesystemengine_win.cpp
@@ -856,7 +856,10 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM
data.fillFromFindData(findData, false, fname.isDriveRoot());
} else {
if (!tryFindFallback(fname, data))
- tryDriveUNCFallback(fname, data);
+ if (!tryDriveUNCFallback(fname, data)) {
+ SetErrorMode(oldmode);
+ return false;
+ }
}
SetErrorMode(oldmode);
}