summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/render/texture/qtexture.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/render/texture/qtexture.cpp b/src/render/texture/qtexture.cpp
index 4aa28aa1c..d9b70a2b8 100644
--- a/src/render/texture/qtexture.cpp
+++ b/src/render/texture/qtexture.cpp
@@ -592,11 +592,17 @@ QTextureImageDataPtr setDdsFile(const QString &source)
layerSize = faces * tmpSize;
// data
- const QByteArray data = f.readAll();
- if (data.size() != layers * layerSize) {
- qWarning() << "Unexpected data size (got " << data.size() << ", expecting" << layers * layerSize << ")";
+ const int dataSize = layers * layerSize;
+
+ const QByteArray data = f.read(dataSize);
+ if (data.size() < dataSize) {
+ qWarning() << "Unexpected end of data in" << source;
return imageData;
}
+
+ if (!f.atEnd())
+ qWarning() << "Unrecognized data in" << source;
+
imageData = QTextureImageDataPtr::create();
imageData->setData(data,blockSize, isCompressed);