[Scummvm-git-logs] scummvm master -> b1688d0a47a84909e4af0b479c6014a90f4e026a
sluicebox
noreply at scummvm.org
Thu Nov 2 19:05:08 UTC 2023
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:
953a7226e7 SAGA: Fix memory leak on error
43db6fad0d WINTERMUTE: Add newline at EOF
b1688d0a47 WINTERMUTE: Fix debugger error handling
Commit: 953a7226e74d90589c7db06ba11f6c6df5e7be11
https://github.com/scummvm/scummvm/commit/953a7226e74d90589c7db06ba11f6c6df5e7be11
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2023-11-02T12:01:25-07:00
Commit Message:
SAGA: Fix memory leak on error
Coverity CID 1501495
Changed paths:
engines/saga/image.cpp
diff --git a/engines/saga/image.cpp b/engines/saga/image.cpp
index 855091e414d..d4277061617 100644
--- a/engines/saga/image.cpp
+++ b/engines/saga/image.cpp
@@ -139,6 +139,7 @@ bool SagaEngine::decodeBGImage(const ByteArray &imageData, ByteArray &outputBuff
byte *uncompressed = Common::PowerPackerStream::unpackBuffer(RLE_data_ptr + 4, RLE_data_len - 4, uncompressed_len);
if (uncompressed == nullptr || (int) uncompressed_len != pitch * hdr.height) {
warning("Uncompressed size mismatch: %d vs %d", uncompressed_len, pitch * hdr.height);
+ delete[] uncompressed;
return false;
}
if (isAGA() && pitch == hdr.width) {
@@ -149,8 +150,10 @@ bool SagaEngine::decodeBGImage(const ByteArray &imageData, ByteArray &outputBuff
for (int y = 0; y < hdr.height; y++)
memcpy(outputBuffer.getBuffer() + y * hdr.width, uncompressed + y * pitch, hdr.width);
} else {
- if (!unbankAmiga(outputBuffer, uncompressed, uncompressed_len, hdr.height, hdr.width, bitnum))
+ if (!unbankAmiga(outputBuffer, uncompressed, uncompressed_len, hdr.height, hdr.width, bitnum)) {
+ delete[] uncompressed;
return false;
+ }
}
delete[] uncompressed;
} else {
Commit: 43db6fad0d8ba794f0df5012685c41625767da17
https://github.com/scummvm/scummvm/commit/43db6fad0d8ba794f0df5012685c41625767da17
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2023-11-02T12:01:26-07:00
Commit Message:
WINTERMUTE: Add newline at EOF
Changed paths:
engines/wintermute/ext/scene_hooks.h
diff --git a/engines/wintermute/ext/scene_hooks.h b/engines/wintermute/ext/scene_hooks.h
index f185c02b972..8b68f2aca56 100644
--- a/engines/wintermute/ext/scene_hooks.h
+++ b/engines/wintermute/ext/scene_hooks.h
@@ -39,4 +39,4 @@ void EmulateSceneHook(const char *sceneFilename) {
} // End of namespace Wintermute
-#endif
\ No newline at end of file
+#endif
Commit: b1688d0a47a84909e4af0b479c6014a90f4e026a
https://github.com/scummvm/scummvm/commit/b1688d0a47a84909e4af0b479c6014a90f4e026a
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2023-11-02T12:01:26-07:00
Commit Message:
WINTERMUTE: Fix debugger error handling
This was detected as a memory leak, but first this code
attempted to delete a stack-allocated object.
Coverity CID 1360370
Changed paths:
engines/wintermute/debugger.cpp
engines/wintermute/debugger/debugger_controller.cpp
engines/wintermute/debugger/debugger_controller.h
diff --git a/engines/wintermute/debugger.cpp b/engines/wintermute/debugger.cpp
index 999d17b0941..08bf7df0291 100644
--- a/engines/wintermute/debugger.cpp
+++ b/engines/wintermute/debugger.cpp
@@ -259,13 +259,14 @@ bool Console::Cmd_List(int argc, const char **argv) {
bool Console::Cmd_Print(int argc, const char **argv) {
if (argc == 2) {
- Error error = Error(SUCCESS, OK, 0);
+ Error *error = nullptr;
Common::String temp = CONTROLLER->readValue(argv[1], &error);
- if (error.getErrorLevel() == SUCCESS) {
+ if (error == nullptr) {
debugPrintf("%s = %s \n", argv[1], temp.c_str());
return true;
} else {
- printError(argv[0], error);
+ printError(argv[0], *error);
+ delete error;
return true;
}
} else {
diff --git a/engines/wintermute/debugger/debugger_controller.cpp b/engines/wintermute/debugger/debugger_controller.cpp
index 100e2bc8c1f..d69469b6ce8 100644
--- a/engines/wintermute/debugger/debugger_controller.cpp
+++ b/engines/wintermute/debugger/debugger_controller.cpp
@@ -190,10 +190,9 @@ void DebuggerController::clear() {
_lastLine = 0xFFFFFFFF; // Invalid
}
-Common::String DebuggerController::readValue(const Common::String &name, Error *error) {
+Common::String DebuggerController::readValue(const Common::String &name, Error **error) {
if (!_lastScript) {
- delete error;
- error = new Error(ERROR, NOT_ALLOWED);
+ *error = new Error(ERROR, NOT_ALLOWED);
return Common::String();
}
char cstr[256]; // TODO not pretty
diff --git a/engines/wintermute/debugger/debugger_controller.h b/engines/wintermute/debugger/debugger_controller.h
index bfa08d058c7..225cfd27aeb 100644
--- a/engines/wintermute/debugger/debugger_controller.h
+++ b/engines/wintermute/debugger/debugger_controller.h
@@ -96,7 +96,7 @@ public:
/**
* @brief read value for a variable accessible from within the current scope.
*/
- Common::String readValue(const Common::String &name, Error *error);
+ Common::String readValue(const Common::String &name, Error **error);
/**
* @brief set value for a variable accessible from within the current scope.
*/
More information about the Scummvm-git-logs
mailing list