[Scummvm-git-logs] scummvm master -> 341b12cc32cedf6696f6f39f3bfc1a5310210241

sev- noreply at scummvm.org
Thu Mar 19 00:50:04 UTC 2026


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
f5e9f41099 VIDEO: DXA: Check boundaries when processing coded 13 motion vectors
341b12cc32 NEWS: Mention Sword2 DXA fix


Commit: f5e9f41099eaaf38d8606ee68b4b884ad2e2e939
    https://github.com/scummvm/scummvm/commit/f5e9f41099eaaf38d8606ee68b4b884ad2e2e939
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2026-03-19T01:49:47+01:00

Commit Message:
VIDEO: DXA: Check boundaries when processing coded 13 motion vectors

It appears, that we shipped badly formatted videos and nobody
ever noticed it since 2007. I suppose, this is because we were just
silently allowing overwriting beyond screen surface.

Fixes bug #16601

Changed paths:
    video/dxa_decoder.cpp


diff --git a/video/dxa_decoder.cpp b/video/dxa_decoder.cpp
index 80c56b4d77c..6568c028c97 100644
--- a/video/dxa_decoder.cpp
+++ b/video/dxa_decoder.cpp
@@ -402,6 +402,14 @@ void DXADecoder::DXAVideoTrack::decode13(int size) {
 
 						uint8 *b1 = (uint8 *)_frameBuffer2 + (sx+mx) + (sy+my) * _width;
 						for (int yc = 0; yc < BLOCKH / 2; yc++) {
+							if (sy + yc + my >= _curHeight) {
+								warning("DXA decode13: Motion vector (%d, %d) out of bounds (y direction)", mx, my);
+								break;
+							}
+							if (sx + BLOCKW / 2 + mx > _width) {
+								warning("DXA decode13: Motion vector (%d, %d) out of bounds (x direction)", mx, my);
+								break;
+							}
 							memcpy(b2, b1, BLOCKW / 2);
 							b1 += _width;
 							b2 += _width;


Commit: 341b12cc32cedf6696f6f39f3bfc1a5310210241
    https://github.com/scummvm/scummvm/commit/341b12cc32cedf6696f6f39f3bfc1a5310210241
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2026-03-19T01:49:47+01:00

Commit Message:
NEWS: Mention Sword2 DXA fix

Changed paths:
    NEWS.md


diff --git a/NEWS.md b/NEWS.md
index 3926cf1d668..a75a8243606 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -83,6 +83,9 @@ For a more comprehensive changelog of the latest experimental code, see:
  SLUDGE:
    - Fixed crash at start of Nathan's Second Chance game.
 
+ Sword2:
+   - Fixed crash with some DXA movies, particularly noticeable in intro.dxa.
+
  Teenagent:
    - Fixed 'could not locate language block' error when starting the Polish and
      Russian versions.




More information about the Scummvm-git-logs mailing list