diff options
author | Colin Snover | 2016-06-22 13:05:18 -0500 |
---|---|---|
committer | Colin Snover | 2016-06-22 13:05:18 -0500 |
commit | a9e2630d4e272c8b776cab54c47943addec7b807 (patch) | |
tree | 5f7af39a780cefbba35617a38f53ce7ab8ce9a8c | |
parent | 87c5540c2a5b06569545dbc06f81f58e3daafbc6 (diff) | |
download | scummvm-rg350-a9e2630d4e272c8b776cab54c47943addec7b807.tar.gz scummvm-rg350-a9e2630d4e272c8b776cab54c47943addec7b807.tar.bz2 scummvm-rg350-a9e2630d4e272c8b776cab54c47943addec7b807.zip |
SCI: Assert on seeks past the end of audio resource bundles
This should never be allowed to happen, but currently does on
multi-CD games with different resource bundles on difference CDs
(Phant1, PQ:SWAT, GK2) because the resource manager does not yet
have the ability to handle this situation.
-rw-r--r-- | engines/sci/resource_audio.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/engines/sci/resource_audio.cpp b/engines/sci/resource_audio.cpp index 5aeff81b77..5ab443a16d 100644 --- a/engines/sci/resource_audio.cpp +++ b/engines/sci/resource_audio.cpp @@ -869,6 +869,7 @@ void WaveResourceSource::loadResource(ResourceManager *resMan, Resource *res) { if (!fileStream) return; + assert(fileStream->size() == -1 || res->_fileOffset < fileStream->size()); fileStream->seek(res->_fileOffset, SEEK_SET); res->loadFromWaveFile(fileStream); if (_resourceFile) @@ -922,6 +923,7 @@ void AudioVolumeResourceSource::loadResource(ResourceManager *resMan, Resource * break; } } else { + assert(fileStream->size() == -1 || res->_fileOffset < fileStream->size()); // original file, directly seek to given offset and get SCI1/SCI1.1 audio resource fileStream->seek(res->_fileOffset, SEEK_SET); } |