[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