summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qstorageinfo_unix.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/io/qstorageinfo_unix.cpp')
-rw-r--r--src/corelib/io/qstorageinfo_unix.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/corelib/io/qstorageinfo_unix.cpp b/src/corelib/io/qstorageinfo_unix.cpp
index 7664b77d81..b7621b5d2f 100644
--- a/src/corelib/io/qstorageinfo_unix.cpp
+++ b/src/corelib/io/qstorageinfo_unix.cpp
@@ -342,13 +342,14 @@ inline bool QStorageIterator::isValid() const
inline bool QStorageIterator::next()
{
QList<QByteArray> data;
+ // If file is virtual, file.readLine() may succeed even when file.atEnd().
do {
const QByteArray line = file.readLine();
+ if (line.isEmpty() && file.atEnd())
+ return false;
data = line.split(' ');
- } while (data.count() < 3 && !file.atEnd());
+ } while (data.count() < 4);
- if (file.atEnd())
- return false;
m_device = data.at(0);
m_rootPath = data.at(1);
m_fileSystemType = data.at(2);