[Scummvm-git-logs] scummvm master -> b79f7e2e2b333063c045e41cf3b8e1ffa342697c
bluegr
noreply at scummvm.org
Sun Sep 15 12:13:07 UTC 2024
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:
b1009b7400 SHERLOCK: Add guard to avoid out-of-bounds writes
653a15e414 SHERLOCK: Skip padding after compressed resource
b79f7e2e2b SHERLOCK: Zero-out trailing bytes after decompressed bytes
Commit: b1009b7400cd0463fc4527819034bf87d90f4d65
https://github.com/scummvm/scummvm/commit/b1009b7400cd0463fc4527819034bf87d90f4d65
Author: Vladimir Serbinenko (phcoder at gmail.com)
Date: 2024-09-15T15:13:03+03:00
Commit Message:
SHERLOCK: Add guard to avoid out-of-bounds writes
Changed paths:
engines/sherlock/resources.cpp
diff --git a/engines/sherlock/resources.cpp b/engines/sherlock/resources.cpp
index 18348e1661f..e751f4eb1d6 100644
--- a/engines/sherlock/resources.cpp
+++ b/engines/sherlock/resources.cpp
@@ -384,7 +384,7 @@ void Resources::decompressLZ(Common::SeekableReadStream &source, byte *outBuffer
copyLen = source.readByte();
copyPos = copyPos | ((copyLen & 0xF0) << 4);
copyLen = (copyLen & 0x0F) + 3;
- while (copyLen--) {
+ while (copyLen-- && (outSize == -1 || outBuffer < outBufferEnd)) {
byte literal = lzWindow[copyPos];
copyPos = (copyPos + 1) & 0x0FFF;
*outBuffer++ = literal;
Commit: 653a15e41488ecd3c09de9966cd00f9f973f921a
https://github.com/scummvm/scummvm/commit/653a15e41488ecd3c09de9966cd00f9f973f921a
Author: Vladimir Serbinenko (phcoder at gmail.com)
Date: 2024-09-15T15:13:03+03:00
Commit Message:
SHERLOCK: Skip padding after compressed resource
This fixes Russian translation of Rose Tattoo
Changed paths:
engines/sherlock/resources.cpp
diff --git a/engines/sherlock/resources.cpp b/engines/sherlock/resources.cpp
index e751f4eb1d6..65ea9a6fe1f 100644
--- a/engines/sherlock/resources.cpp
+++ b/engines/sherlock/resources.cpp
@@ -393,6 +393,9 @@ void Resources::decompressLZ(Common::SeekableReadStream &source, byte *outBuffer
}
}
} while ((outSize == -1 || outBuffer < outBufferEnd) && (inSize == -1 || source.pos() < endPos));
+ if (inSize != -1 && source.pos() < endPos) {
+ source.skip(endPos - source.pos());
+ }
}
} // End of namespace Sherlock
Commit: b79f7e2e2b333063c045e41cf3b8e1ffa342697c
https://github.com/scummvm/scummvm/commit/b79f7e2e2b333063c045e41cf3b8e1ffa342697c
Author: Vladimir Serbinenko (phcoder at gmail.com)
Date: 2024-09-15T15:13:03+03:00
Commit Message:
SHERLOCK: Zero-out trailing bytes after decompressed bytes
Fixes Russian version of Rose Tatoo
Changed paths:
engines/sherlock/resources.cpp
diff --git a/engines/sherlock/resources.cpp b/engines/sherlock/resources.cpp
index 65ea9a6fe1f..ed63cddf6e2 100644
--- a/engines/sherlock/resources.cpp
+++ b/engines/sherlock/resources.cpp
@@ -396,6 +396,9 @@ void Resources::decompressLZ(Common::SeekableReadStream &source, byte *outBuffer
if (inSize != -1 && source.pos() < endPos) {
source.skip(endPos - source.pos());
}
+ if (outSize != -1 && outBuffer < outBufferEnd) {
+ memset(outBuffer, 0, outBufferEnd - outBuffer);
+ }
}
} // End of namespace Sherlock
More information about the Scummvm-git-logs
mailing list