[Scummvm-git-logs] scummvm master -> c319791519bf9182082a8b9f0d3975d3feb5c527
sluicebox
noreply at scummvm.org
Mon Oct 30 20:11:29 UTC 2023
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
c319791519 SCUMM: Fix memory leak in changeSavegameName. PVS-Studio V773
Commit: c319791519bf9182082a8b9f0d3975d3feb5c527
https://github.com/scummvm/scummvm/commit/c319791519bf9182082a8b9f0d3975d3feb5c527
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2023-10-30T13:11:17-07:00
Commit Message:
SCUMM: Fix memory leak in changeSavegameName. PVS-Studio V773
Changed paths:
engines/scumm/saveload.cpp
diff --git a/engines/scumm/saveload.cpp b/engines/scumm/saveload.cpp
index 606facdaed5..177d5341e60 100644
--- a/engines/scumm/saveload.cpp
+++ b/engines/scumm/saveload.cpp
@@ -1273,6 +1273,7 @@ bool ScummEngine::changeSavegameName(int slot, char *newName) {
if (in->err()) {
warning("ScummEngine::changeSavegameName(): Error in input file stream, aborting...");
delete in;
+ free(saveBuffer);
return false;
}
}
@@ -1280,18 +1281,21 @@ bool ScummEngine::changeSavegameName(int slot, char *newName) {
delete in;
Common::WriteStream *out = openSaveFileForWriting(slot, false, filename);
- saveSaveGameHeader(out, hdr);
if (!out) {
warning("ScummEngine::changeSavegameName(): Couldn't open output file, aborting...");
+ free(saveBuffer);
return false;
}
+ saveSaveGameHeader(out, hdr);
+
for (uint i = 0; i < (uint)bufferSizeNoHdr; i++) {
out->writeByte(saveBuffer[i]);
if (out->err()) {
warning("ScummEngine::changeSavegameName(): Error in output file stream, aborting...");
+ free(saveBuffer);
delete out;
return false;
}
@@ -1301,10 +1305,12 @@ bool ScummEngine::changeSavegameName(int slot, char *newName) {
if (out->err()) {
warning("ScummEngine::changeSavegameName(): Error in output file stream after finalizing...");
+ free(saveBuffer);
delete out;
return false;
}
+ free(saveBuffer);
delete out;
return true;
More information about the Scummvm-git-logs
mailing list