[Scummvm-git-logs] scummvm master -> 1700f0e29404b7c3a1dc7bcb1e8a747cdb3ab3f8
sluicebox
noreply at scummvm.org
Thu Apr 13 21:27:35 UTC 2023
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
f05625a32b SCI: Initialize Script::_codeOffset
28dc3f946b SCI32: ChunkedResourceSource error handling
c2526b1fa0 SCI32: kFileIOReadRaw error handling
1700f0e294 SCI: MidiPlayer_FMTowns error handling
Commit: f05625a32b2ea53df2d861fa2e66e0b406af3278
https://github.com/scummvm/scummvm/commit/f05625a32b2ea53df2d861fa2e66e0b406af3278
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2023-04-13T14:26:21-07:00
Commit Message:
SCI: Initialize Script::_codeOffset
Coverity issue 1365197
Changed paths:
engines/sci/engine/script.cpp
diff --git a/engines/sci/engine/script.cpp b/engines/sci/engine/script.cpp
index 01e3bcf42f3..a10ba8df074 100644
--- a/engines/sci/engine/script.cpp
+++ b/engines/sci/engine/script.cpp
@@ -57,6 +57,8 @@ void Script::freeScript(const bool keepLocalsSegment) {
_synonyms.clear();
_numSynonyms = 0;
+ _codeOffset = 0;
+
_localsOffset = 0;
if (!keepLocalsSegment) {
_localsSegment = 0;
Commit: 28dc3f946b4d1cf504187b54e11c1b362a210017
https://github.com/scummvm/scummvm/commit/28dc3f946b4d1cf504187b54e11c1b362a210017
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2023-04-13T14:26:22-07:00
Commit Message:
SCI32: ChunkedResourceSource error handling
Coverity issue 1003613
Changed paths:
engines/sci/resource/resource.cpp
diff --git a/engines/sci/resource/resource.cpp b/engines/sci/resource/resource.cpp
index ef51771f422..2afcd6b2d41 100644
--- a/engines/sci/resource/resource.cpp
+++ b/engines/sci/resource/resource.cpp
@@ -927,7 +927,7 @@ ChunkResourceSource::ChunkResourceSource(const Common::String &name, uint16 numb
void ChunkResourceSource::scanSource(ResourceManager *resMan) {
Resource *chunk = resMan->findResource(ResourceId(kResourceTypeChunk, _number), false);
- if (!chunk)
+ if (chunk == nullptr)
error("Trying to load non-existent chunk");
const byte *ptr = chunk->data();
@@ -963,11 +963,13 @@ void ChunkResourceSource::scanSource(ResourceManager *resMan) {
void ChunkResourceSource::loadResource(ResourceManager *resMan, Resource *res) {
Resource *chunk = resMan->findResource(ResourceId(kResourceTypeChunk, _number), false);
+ if (chunk == nullptr)
+ error("Trying to load non-existent chunk");
- if (!_resMap.contains(res->_id))
+ ResourceEntry entry;
+ if (!_resMap.tryGetVal(res->_id, entry))
error("Trying to load non-existent resource %s from chunk %d", res->_id.toString().c_str(), _number);
- ResourceEntry entry = _resMap[res->_id];
if (entry.offset + entry.length > chunk->size()) {
error("Resource %s is too large to exist within chunk %d (%u + %u > %u)", res->_id.toString().c_str(), _number, entry.offset, entry.length, chunk->size());
}
Commit: c2526b1fa0a94a91ef9a3528a1399cb176d01dcb
https://github.com/scummvm/scummvm/commit/c2526b1fa0a94a91ef9a3528a1399cb176d01dcb
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2023-04-13T14:26:22-07:00
Commit Message:
SCI32: kFileIOReadRaw error handling
Coverity issue 1422008
Changed paths:
engines/sci/engine/kfile.cpp
diff --git a/engines/sci/engine/kfile.cpp b/engines/sci/engine/kfile.cpp
index 287d689aa7e..8436b18a67c 100644
--- a/engines/sci/engine/kfile.cpp
+++ b/engines/sci/engine/kfile.cpp
@@ -598,6 +598,9 @@ reg_t kFileIOReadRaw(EngineState *s, int argc, reg_t *argv) {
#ifdef ENABLE_SCI32
SegmentRef destReference = s->_segMan->dereference(dest);
SegmentObj *destObject = s->_segMan->getSegmentObj(dest.getSegment());
+ if (destObject == nullptr) {
+ error("kFileIO(readRaw): invalid destination %04x:%04x", PRINT_REG(dest));
+ }
if (destReference.maxSize == size - 4 && destObject->getType() == SEG_TYPE_ARRAY) {
// This is an array structure, which starts with the number of
Commit: 1700f0e29404b7c3a1dc7bcb1e8a747cdb3ab3f8
https://github.com/scummvm/scummvm/commit/1700f0e29404b7c3a1dc7bcb1e8a747cdb3ab3f8
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2023-04-13T14:26:23-07:00
Commit Message:
SCI: MidiPlayer_FMTowns error handling
Coverity issue 1373262
Changed paths:
engines/sci/sound/drivers/fmtowns.cpp
diff --git a/engines/sci/sound/drivers/fmtowns.cpp b/engines/sci/sound/drivers/fmtowns.cpp
index d168d934f80..f1c7da925c1 100644
--- a/engines/sci/sound/drivers/fmtowns.cpp
+++ b/engines/sci/sound/drivers/fmtowns.cpp
@@ -624,8 +624,15 @@ int MidiPlayer_FMTowns::open(ResourceManager *resMan) {
int result = MidiDriver::MERR_DEVICE_NOT_AVAILABLE;
if (_townsDriver) {
result = _townsDriver->open();
- if (!result && _version == SCI_VERSION_1_LATE)
- _townsDriver->loadInstruments(*resMan->findResource(ResourceId(kResourceTypePatch, 8), false));
+ if (!result && _version == SCI_VERSION_1_LATE) {
+ Resource *res = resMan->findResource(ResourceId(kResourceTypePatch, 8), false);
+ if (res != nullptr) {
+ _townsDriver->loadInstruments(*res);
+ } else {
+ warning("MidiPlayer_FMTowns: Failed to open patch 8");
+ result = MidiDriver::MERR_DEVICE_NOT_AVAILABLE;
+ }
+ }
}
return result;
}
More information about the Scummvm-git-logs
mailing list