[Scummvm-git-logs] scummvm master -> f7deafa90cc4ac4124c4a28c385517c7b105b700
mgerhardy
noreply at scummvm.org
Mon Aug 24 19:14:56 UTC 2026
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
9358a2b0b8 MACS2: fixed CID 1685486
f7deafa90c MACS2: fixed coverity INTEGER_OVERFLOW issues
Commit: 9358a2b0b8997c63b9e5b0318eea6d7d821a73aa
https://github.com/scummvm/scummvm/commit/9358a2b0b8997c63b9e5b0318eea6d7d821a73aa
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2026-08-24T21:11:09+02:00
Commit Message:
MACS2: fixed CID 1685486
Changed paths:
engines/macs2/macs2.cpp
diff --git a/engines/macs2/macs2.cpp b/engines/macs2/macs2.cpp
index 5cbd6344621..b5ea69e9a21 100644
--- a/engines/macs2/macs2.cpp
+++ b/engines/macs2/macs2.cpp
@@ -1672,18 +1672,19 @@ bool Macs2Engine::loadDeltaAnimResource(uint8 resourceIndex, uint16 executingObj
_fileStream->seek(oldPos, SEEK_SET);
return false;
}
+ const uint16 numFrames = frameCount;
// Scripts call addDeltaSfx before playDiskDelta; keep the pending SFX list.
Common::Array<DeltaSfxEvent> savedSfx = Common::move(_deltaAnim.sfxEvents);
clearDeltaAnim();
_deltaAnim.sfxEvents = Common::move(savedSfx);
_fileStream->read(_deltaAnim.palette, 0x300);
- _deltaAnim.frames.resize(frameCount);
- _deltaAnim.frameCount = frameCount;
+ _deltaAnim.frames.resize(numFrames);
+ _deltaAnim.frameCount = numFrames;
_deltaAnim.loaded = true;
const uint32 base = address + 4;
- for (uint16 fi = 0; fi < frameCount; fi++) {
+ for (uint16 fi = 0; fi < numFrames; fi++) {
const uint32 absOff = relOffsets[fi] + base;
if (absOff >= (uint32)_fileStream->size())
continue;
Commit: f7deafa90cc4ac4124c4a28c385517c7b105b700
https://github.com/scummvm/scummvm/commit/f7deafa90cc4ac4124c4a28c385517c7b105b700
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2026-08-24T21:14:36+02:00
Commit Message:
MACS2: fixed coverity INTEGER_OVERFLOW issues
Changed paths:
engines/macs2/scriptexecutor.cpp
diff --git a/engines/macs2/scriptexecutor.cpp b/engines/macs2/scriptexecutor.cpp
index f8cb5e74786..8c168aa6824 100644
--- a/engines/macs2/scriptexecutor.cpp
+++ b/engines/macs2/scriptexecutor.cpp
@@ -3368,8 +3368,8 @@ OpcodeResult ScriptExecutor::scriptStopSong() {
}
OpcodeResult ScriptExecutor::scriptSetMainActor() {
- const uint32 objectID = scriptReadValue32() - 0x400;
- debugC(kDebugScript, "SCRIPT::setMainActor(objectID=%u)", objectID);
+ const int32 objectID = (int32)scriptReadValue32() - 0x400;
+ debugC(kDebugScript, "SCRIPT::setMainActor(objectID=%d)", objectID);
clearScriptError();
if (objectID < 1 || objectID > 0x200) {
@@ -3510,10 +3510,10 @@ OpcodeResult ScriptExecutor::scriptScreenShot() {
}
OpcodeResult ScriptExecutor::scriptWaitObjectAnimStep() {
- const uint32 objectID = scriptReadValue32() - 0x400;
+ const int32 objectID = (int32)scriptReadValue32() - 0x400;
const uint16 animNr = scriptReadValue16();
const uint16 animStep = scriptReadValue16();
- debugC(kDebugScript, "SCRIPT::waitObjectAnimStep(objectID=%u, animNr=%u, animStep=%u)",
+ debugC(kDebugScript, "SCRIPT::waitObjectAnimStep(objectID=%d, animNr=%u, animStep=%u)",
objectID, animNr, animStep);
scriptSkipOpcodeRemainder(0x56);
@@ -3547,14 +3547,14 @@ OpcodeResult ScriptExecutor::scriptWaitObjectAnimStep() {
}
OpcodeResult ScriptExecutor::scriptWaitSpecialAnimStep() {
- const uint32 sceneAnimIndex = scriptReadValue32() - 0x1000;
+ const int32 sceneAnimIndex = (int32)scriptReadValue32() - 0x1000;
const uint16 animStep = scriptReadValue16();
- debugC(kDebugScript, "SCRIPT::waitSpecialAnimStep(sceneAnimIndex=%u, animStep=%u)",
+ debugC(kDebugScript, "SCRIPT::waitSpecialAnimStep(sceneAnimIndex=%d, animStep=%u)",
sceneAnimIndex, animStep);
scriptSkipOpcodeRemainder(0x57);
clearScriptError();
- if (sceneAnimIndex == 0 || sceneAnimIndex > _engine->_backgroundAnimationsBlobs.size()) {
+ if (sceneAnimIndex == 0 || sceneAnimIndex > (int32)_engine->_backgroundAnimationsBlobs.size()) {
setScriptError(8);
return OpcodeResult::Continue;
}
@@ -3569,10 +3569,10 @@ OpcodeResult ScriptExecutor::scriptWaitSpecialAnimStep() {
}
OpcodeResult ScriptExecutor::scriptSetObjectAdjust() {
- const uint32 objectID = scriptReadValue32() - 0x400;
+ const int32 objectID = (int32)scriptReadValue32() - 0x400;
const uint16 adjust1 = scriptReadValue16();
const uint16 adjust2 = scriptReadValue16();
- debugC(kDebugScript, "SCRIPT::setObjectAdjust(objectID=%u, adjust1=%u, adjust2=%u)",
+ debugC(kDebugScript, "SCRIPT::setObjectAdjust(objectID=%d, adjust1=%u, adjust2=%u)",
objectID, adjust1, adjust2);
clearScriptError();
@@ -3595,12 +3595,12 @@ OpcodeResult ScriptExecutor::scriptSetObjectAdjust() {
}
OpcodeResult ScriptExecutor::scriptReloadSpecialAnim() {
- const uint32 sceneAnimIndex = scriptReadValue32() - 0x1000;
+ const int32 sceneAnimIndex = (int32)scriptReadValue32() - 0x1000;
const uint8 resourceIndex = readByte();
- debugC(kDebugScript, "SCRIPT::reloadSpecialAnim(anim=%u res=%u)", sceneAnimIndex, resourceIndex);
+ debugC(kDebugScript, "SCRIPT::reloadSpecialAnim(anim=%d res=%u)", sceneAnimIndex, resourceIndex);
clearScriptError();
scriptSkipOpcodeRemainder(0x59);
- if (sceneAnimIndex == 0 || sceneAnimIndex > _engine->_backgroundAnimationsBlobs.size()) {
+ if (sceneAnimIndex == 0 || sceneAnimIndex > (int32)_engine->_backgroundAnimationsBlobs.size()) {
setScriptError(8);
return OpcodeResult::Continue;
}
@@ -3684,10 +3684,10 @@ OpcodeResult ScriptExecutor::scriptSetWaveVolume() {
}
OpcodeResult ScriptExecutor::scriptLoadSpecialAnimSlot() {
- const uint32 sceneAnimIndex = scriptReadValue32() - 0x1000;
+ const int32 sceneAnimIndex = (int32)scriptReadValue32() - 0x1000;
const uint16 slot = scriptReadValue16();
const uint8 resourceIndex = readByte();
- debugC(kDebugScript, "SCRIPT::loadSpecialAnimSlot(anim=%u slot=%u res=%u)",
+ debugC(kDebugScript, "SCRIPT::loadSpecialAnimSlot(anim=%d slot=%u res=%u)",
sceneAnimIndex, slot, resourceIndex);
clearScriptError();
scriptSkipOpcodeRemainder(0x5E);
@@ -3695,7 +3695,7 @@ OpcodeResult ScriptExecutor::scriptLoadSpecialAnimSlot() {
setScriptError(0x31);
return OpcodeResult::Continue;
}
- if (sceneAnimIndex == 0 || sceneAnimIndex > _engine->_backgroundAnimationsBlobs.size()) {
+ if (sceneAnimIndex == 0 || sceneAnimIndex > (int32)_engine->_backgroundAnimationsBlobs.size()) {
setScriptError(8);
return OpcodeResult::Continue;
}
@@ -3708,16 +3708,16 @@ OpcodeResult ScriptExecutor::scriptLoadSpecialAnimSlot() {
}
OpcodeResult ScriptExecutor::scriptSetSpecialAnimSlot() {
- const uint32 sceneAnimIndex = scriptReadValue32() - 0x1000;
+ const int32 sceneAnimIndex = (int32)scriptReadValue32() - 0x1000;
const uint16 slot = scriptReadValue16();
- debugC(kDebugScript, "SCRIPT::setSpecialAnimSlot(anim=%u slot=%u)", sceneAnimIndex, slot);
+ debugC(kDebugScript, "SCRIPT::setSpecialAnimSlot(anim=%d slot=%u)", sceneAnimIndex, slot);
clearScriptError();
scriptSkipOpcodeRemainder(0x5F);
if (slot > 8) {
setScriptError(0x31);
return OpcodeResult::Continue;
}
- if (sceneAnimIndex == 0 || sceneAnimIndex > _engine->_backgroundAnimationsBlobs.size()) {
+ if (sceneAnimIndex == 0 || sceneAnimIndex > (int32)_engine->_backgroundAnimationsBlobs.size()) {
setScriptError(8);
return OpcodeResult::Continue;
}
@@ -3731,16 +3731,16 @@ OpcodeResult ScriptExecutor::scriptSetSpecialAnimSlot() {
}
OpcodeResult ScriptExecutor::scriptClearSpecialAnimSlot() {
- const uint32 sceneAnimIndex = scriptReadValue32() - 0x1000;
+ const int32 sceneAnimIndex = (int32)scriptReadValue32() - 0x1000;
const uint16 slot = scriptReadValue16();
- debugC(kDebugScript, "SCRIPT::clearSpecialAnimSlot(anim=%u slot=%u)", sceneAnimIndex, slot);
+ debugC(kDebugScript, "SCRIPT::clearSpecialAnimSlot(anim=%d slot=%u)", sceneAnimIndex, slot);
clearScriptError();
scriptSkipOpcodeRemainder(0x60);
if (slot > 8) {
setScriptError(0x31);
return OpcodeResult::Continue;
}
- if (sceneAnimIndex == 0 || sceneAnimIndex > _engine->_backgroundAnimationsBlobs.size()) {
+ if (sceneAnimIndex == 0 || sceneAnimIndex > (int32)_engine->_backgroundAnimationsBlobs.size()) {
setScriptError(8);
return OpcodeResult::Continue;
}
More information about the Scummvm-git-logs
mailing list