diff options
author | Ritt Konstantin <ritt.ks@gmail.com> | 2009-08-11 16:11:25 (GMT) |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@trolltech.com> | 2009-08-11 16:21:09 (GMT) |
commit | 7fe0dfb80efd67886a33fe8b37e9714175925688 (patch) | |
tree | e68df9927da4b221ebadb76a2beb9883a281d2d3 | |
parent | 0e193b51c995395c92f8b1d0b67a782314772c6c (diff) | |
download | Qt-7fe0dfb80efd67886a33fe8b37e9714175925688.zip Qt-7fe0dfb80efd67886a33fe8b37e9714175925688.tar.gz Qt-7fe0dfb80efd67886a33fe8b37e9714175925688.tar.bz2 |
avoid crash when testing HiddenFlag and BaseName is empty
Merge-request: 1176
Reviewed-by: Joerg Bornemann <joerg.bornemann@trolltech.com>
-rw-r--r-- | src/corelib/io/qfsfileengine_unix.cpp | 3 | ||||
-rw-r--r-- | tests/auto/qfileinfo/tst_qfileinfo.cpp | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 029d422..4d451e6 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -656,7 +656,8 @@ QAbstractFileEngine::FileFlags QFSFileEngine::fileFlags(FileFlags type) const ret |= LocalDiskFlag; if (exists) ret |= ExistsFlag; - if (fileName(BaseName)[0] == QLatin1Char('.') + QString baseName = fileName(BaseName); + if ((baseName.size() > 0 && baseName.at(0) == QLatin1Char('.')) #if !defined(QWS) && defined(Q_OS_MAC) || _q_isMacHidden(d->filePath) #endif diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index a87e306..e2800e5 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -974,6 +974,9 @@ void tst_QFileInfo::isHidden_data() foreach (const QFileInfo& info, QDir::drives()) { QTest::newRow(qPrintable("drive." + info.path())) << info.path() << false; } +#if !defined(Q_OS_WIN) + QTest::newRow("/bin/") << QString::fromLatin1("/bin/") << false; +#endif #ifdef Q_OS_MAC QTest::newRow("mac_etc") << QString::fromLatin1("/etc") << true; QTest::newRow("mac_private_etc") << QString::fromLatin1("/private/etc") << false; |