diff --git a/engines/director/score.cpp b/engines/director/score.cpp index 83fe6dd5c064..609c8abc7ce1 100644 --- a/engines/director/score.cpp +++ b/engines/director/score.cpp @@ -317,7 +317,7 @@ void Score::loadFrames(Common::SeekableSubReadStreamEndian &stream) { byte channelData[kChannelDataSize]; memset(channelData, 0, kChannelDataSize); - while (size != 0) { + while (size != 0 && !stream.eos()) { uint16 frameSize = stream.readUint16(); debugC(kDebugLoading, 8, "++++ score frame %d (frameSize %d) size %d", _frames.size(), frameSize, size); size -= frameSize;