From 52134fc2e962dc3dd39ab249e51c0b373a4d0a52 Mon Sep 17 00:00:00 2001 From: Mirco Miranda Date: Thu, 14 Apr 2022 23:04:58 +0000 Subject: [PATCH] QByteArray resize removal - Removed QByteArray resize with potentially large numbers as in merge request !66 --- src/imageformats/psd.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/imageformats/psd.cpp b/src/imageformats/psd.cpp index 84cca5a..0477c3f 100644 --- a/src/imageformats/psd.cpp +++ b/src/imageformats/psd.cpp @@ -216,11 +216,14 @@ static PSDImageResourceSection readImageResourceSection(QDataStream &s, bool *ok quint32 dataSize; s >> dataSize; size -= sizeof(dataSize); - irb.data.resize(dataSize); - auto read = s.readRawData(irb.data.data(), irb.data.size()); + // NOTE: Qt device::read() and QDataStream::readRawData() could read less data than specified. + // The read code should be improved. + if(auto dev = s.device()) + irb.data = dev->read(dataSize); + auto read = irb.data.size(); if (read > 0) size -= read; - if (read != irb.data.size()) { + if (read != dataSize) { qDebug() << "Image Resource Block Read Error!"; *ok = false; break;