summaryrefslogtreecommitdiffstats
path: root/src/multimedia/audio/qwavedecoder_p.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/audio/qwavedecoder_p.cpp')
-rw-r--r--src/multimedia/audio/qwavedecoder_p.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/multimedia/audio/qwavedecoder_p.cpp b/src/multimedia/audio/qwavedecoder_p.cpp
index 4b036b201..b75bfaf8f 100644
--- a/src/multimedia/audio/qwavedecoder_p.cpp
+++ b/src/multimedia/audio/qwavedecoder_p.cpp
@@ -153,13 +153,15 @@ void QWaveDecoder::handleData()
chunk descriptor;
peekChunk(&descriptor);
- if (source->bytesAvailable() < qint64(descriptor.size + sizeof(chunk)))
+ quint32 rawChunkSize = descriptor.size + sizeof(chunk);
+ if (source->bytesAvailable() < qint64(rawChunkSize))
return;
WAVEHeader wave;
source->read(reinterpret_cast<char *>(&wave), sizeof(WAVEHeader));
- if (descriptor.size > sizeof(WAVEHeader))
- discardBytes(descriptor.size - sizeof(WAVEHeader));
+
+ if (rawChunkSize > sizeof(WAVEHeader))
+ discardBytes(rawChunkSize - sizeof(WAVEHeader));
// Swizzle this
if (bigEndian) {