[Scummvm-git-logs] scummvm master -> 20e8482b3d77a34c30f47479abdc31ba04bbff10
elasota
noreply at scummvm.org
Sat Jun 18 02:17:23 UTC 2022
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
1b8fa06933 MTROPOLIS: Fix some Coverity errors
72fff89c04 MTROPOLIS: Fix set modifier source using the wrong string length field
20e8482b3d MTROPOLIS: Correctly parse quirky event format in set modifier
Commit: 1b8fa06933a2cd1d136e252dfa2a27bbae0220de
https://github.com/scummvm/scummvm/commit/1b8fa06933a2cd1d136e252dfa2a27bbae0220de
Author: elasota (ejlasota at gmail.com)
Date: 2022-06-17T21:37:58-04:00
Commit Message:
MTROPOLIS: Fix some Coverity errors
Changed paths:
engines/mtropolis/data.cpp
engines/mtropolis/debug.cpp
engines/mtropolis/elements.cpp
engines/mtropolis/miniscript.cpp
engines/mtropolis/plugin/standard.cpp
engines/mtropolis/runtime.cpp
diff --git a/engines/mtropolis/data.cpp b/engines/mtropolis/data.cpp
index c04b7cb92c0..f91631c6b0f 100644
--- a/engines/mtropolis/data.cpp
+++ b/engines/mtropolis/data.cpp
@@ -1348,6 +1348,7 @@ DataReadErrorCode GraphicModifier::load(DataReader &reader) {
if (!reader.readU16(numPolygonPoints) || !reader.readBytes(unknown6))
return kDataReadErrorReadFailed;
+ // coverity[tainted_scalar]
polyPoints.resize(numPolygonPoints);
for (size_t i = 0; i < numPolygonPoints; i++) {
if (!polyPoints[i].load(reader))
@@ -1524,8 +1525,8 @@ DataReadErrorCode ColorTableAsset::load(DataReader &reader) {
const uint8 *rgb = cdefBytes + i * 8 + 2;
cdef.red = (rgb[0] << 8) | rgb[1];
- cdef.green = (rgb[2] << 8) | rgb[5];
- cdef.blue = (rgb[4] << 8) | rgb[6];
+ cdef.green = (rgb[2] << 8) | rgb[3];
+ cdef.blue = (rgb[4] << 8) | rgb[5];
}
} else if (reader.getProjectFormat() == Data::kProjectFormatWindows) {
if (!reader.skip(14))
diff --git a/engines/mtropolis/debug.cpp b/engines/mtropolis/debug.cpp
index f4ac3499671..43b94c6f6a4 100644
--- a/engines/mtropolis/debug.cpp
+++ b/engines/mtropolis/debug.cpp
@@ -272,6 +272,7 @@ void DebugToolWindowBase::render() {
srcLeft += adjust;
}
if (destLeft < 0) {
+ // coverity[dead_error_begin]
int32 adjust = -destLeft;
destLeft += adjust;
srcLeft += adjust;
diff --git a/engines/mtropolis/elements.cpp b/engines/mtropolis/elements.cpp
index 361167c2ac5..9b4f26fd996 100644
--- a/engines/mtropolis/elements.cpp
+++ b/engines/mtropolis/elements.cpp
@@ -1450,6 +1450,7 @@ MiniscriptInstructionOutcome MToonElement::scriptSetRangeTyped(MiniscriptThread
intRange.max = maxFrame;
if (isInvertedRange) {
+ // coverity[swapped_arguments]
_playRange = IntRange::create(intRange.max, intRange.min);
if (_rateTimes100000 > 0)
_rateTimes100000 = -_rateTimes100000;
diff --git a/engines/mtropolis/miniscript.cpp b/engines/mtropolis/miniscript.cpp
index 11f7e889fac..db79abb5b0a 100644
--- a/engines/mtropolis/miniscript.cpp
+++ b/engines/mtropolis/miniscript.cpp
@@ -991,9 +991,12 @@ MiniscriptInstructionOutcome BuiltinFunc::execute(MiniscriptThread *thread) cons
if (returnsValue)
valuesToPop--;
- if (valuesToPop > 0)
+ if (valuesToPop > 0) {
+ // coverity[dead_error_line]
thread->popValues(valuesToPop);
+ }
} else {
+ // coverity[dead_error_line]
if (returnsValue)
thread->pushValue(staticDest);
}
@@ -1131,7 +1134,7 @@ MiniscriptInstructionOutcome BuiltinFunc::executeRectToPolar(MiniscriptThread *t
const Point16POD &pt = inputDynamicValue.getPoint();
- double angle = atan2(pt.x, pt.y);
+ double angle = atan2(pt.y, pt.x);
double magnitude = sqrt(pt.x * pt.x + pt.y * pt.y);
returnValue->setVector(AngleMagVector::createRadians(angle, magnitude));
diff --git a/engines/mtropolis/plugin/standard.cpp b/engines/mtropolis/plugin/standard.cpp
index dbc58b9ff9e..a39b135bb65 100644
--- a/engines/mtropolis/plugin/standard.cpp
+++ b/engines/mtropolis/plugin/standard.cpp
@@ -583,7 +583,8 @@ bool ObjectReferenceVariableModifier::load(const PlugInModifierLoaderContext &co
if (data.setToSourceParentWhen.type != Data::PlugInTypeTaggedValue::kEvent)
return false;
- _setToSourceParentWhen.load(data.setToSourceParentWhen.value.asEvent);
+ if (!_setToSourceParentWhen.load(data.setToSourceParentWhen.value.asEvent))
+ return false;
if (data.objectPath.type == Data::PlugInTypeTaggedValue::kString)
_objectPath = data.objectPath.str;
diff --git a/engines/mtropolis/runtime.cpp b/engines/mtropolis/runtime.cpp
index 86773b49a7d..a6353710907 100644
--- a/engines/mtropolis/runtime.cpp
+++ b/engines/mtropolis/runtime.cpp
@@ -602,7 +602,7 @@ bool DynamicListContainer<VarReference>::expandToMinimumSize(size_t sz) {
_array.resize(sz);
_strings.resize(sz);
- for (size_t i = prevSize; i < sz; prevSize++) {
+ for (size_t i = prevSize; i < sz; i++) {
_array[i].guid = 0;
_array[i].source = nullptr;
}
@@ -3540,7 +3540,7 @@ Runtime::Runtime(OSystem *system, Audio::Mixer *mixer, ISaveUIProvider *saveProv
_playTimeBase = system->getMillis();
for (int i = 0; i < Actions::kMouseButtonCount; i++)
- _mouseFocusFlags[Actions::kMouseButtonCount] = false;
+ _mouseFocusFlags[i] = false;
_worldManagerInterface.reset(new WorldManagerInterface());
_worldManagerInterface->setSelfReference(_worldManagerInterface);
@@ -3805,7 +3805,8 @@ void Runtime::drawFrame() {
sortedBuckets[i].window = _windows[i].get();
}
- Common::sort(sortedBuckets, sortedBuckets + numWindows, WindowSortingBucket::sortPredicate);
+ if (numWindows > 1) // Quiet Coverity warning
+ Common::sort(sortedBuckets, sortedBuckets + numWindows, WindowSortingBucket::sortPredicate);
for (size_t i = 0; i < numWindows; i++) {
const Window &window = *sortedBuckets[i].window;
Commit: 72fff89c044df03c9945bdc0c5d4030621404aa7
https://github.com/scummvm/scummvm/commit/72fff89c044df03c9945bdc0c5d4030621404aa7
Author: elasota (ejlasota at gmail.com)
Date: 2022-06-17T21:37:58-04:00
Commit Message:
MTROPOLIS: Fix set modifier source using the wrong string length field
Changed paths:
engines/mtropolis/data.cpp
diff --git a/engines/mtropolis/data.cpp b/engines/mtropolis/data.cpp
index f91631c6b0f..7822a99da2e 100644
--- a/engines/mtropolis/data.cpp
+++ b/engines/mtropolis/data.cpp
@@ -1046,7 +1046,7 @@ DataReadErrorCode SetModifier::load(DataReader &reader) {
|| !source.load(reader) || !target.load(reader) || !reader.readU8(unknown3)
|| !reader.readU8(sourceNameLength) || !reader.readU8(targetNameLength) || !reader.readU8(sourceStringLength)
|| !reader.readU8(targetStringLength) || !reader.readU8(unknown4) || !reader.readNonTerminatedStr(sourceName, sourceNameLength)
- || !reader.readNonTerminatedStr(targetName, targetNameLength) || !reader.readNonTerminatedStr(sourceString, sourceNameLength)
+ || !reader.readNonTerminatedStr(targetName, targetNameLength) || !reader.readNonTerminatedStr(sourceString, sourceStringLength)
|| !reader.readNonTerminatedStr(targetString, targetStringLength))
return kDataReadErrorReadFailed;
Commit: 20e8482b3d77a34c30f47479abdc31ba04bbff10
https://github.com/scummvm/scummvm/commit/20e8482b3d77a34c30f47479abdc31ba04bbff10
Author: elasota (ejlasota at gmail.com)
Date: 2022-06-17T22:15:56-04:00
Commit Message:
MTROPOLIS: Correctly parse quirky event format in set modifier
Changed paths:
engines/mtropolis/data.cpp
diff --git a/engines/mtropolis/data.cpp b/engines/mtropolis/data.cpp
index 7822a99da2e..dd28f88e56e 100644
--- a/engines/mtropolis/data.cpp
+++ b/engines/mtropolis/data.cpp
@@ -1042,8 +1042,9 @@ DataReadErrorCode SetModifier::load(DataReader &reader) {
if (_revision != 1000)
return kDataReadErrorUnsupportedRevision;
- if (!modHeader.load(reader) || !reader.readBytes(unknown1) || !executeWhen.load(reader)
- || !source.load(reader) || !target.load(reader) || !reader.readU8(unknown3)
+ // NOTE: executeWhen is split in half and stored in 2 separate parts
+ if (!modHeader.load(reader) || !reader.readBytes(unknown1) || !reader.readU32(executeWhen.eventID)
+ || !source.load(reader) || !target.load(reader) || !reader.readU32(executeWhen.eventInfo) || !reader.readU8(unknown3)
|| !reader.readU8(sourceNameLength) || !reader.readU8(targetNameLength) || !reader.readU8(sourceStringLength)
|| !reader.readU8(targetStringLength) || !reader.readU8(unknown4) || !reader.readNonTerminatedStr(sourceName, sourceNameLength)
|| !reader.readNonTerminatedStr(targetName, targetNameLength) || !reader.readNonTerminatedStr(sourceString, sourceStringLength)
More information about the Scummvm-git-logs
mailing list