[Scummvm-tracker] [ScummVM :: Bugs] #16217: PRIVATE: Broken graphics in SDL Surface mode when subtitles are enabled
ScummVM :: Bugs
trac at scummvm.org
Mon Sep 22 18:07:59 UTC 2025
#16217: PRIVATE: Broken graphics in SDL Surface mode when subtitles are enabled
-------------------------+------------------------------
Reporter: eriktorbjorn | Owner: neuromancer
Type: defect | Status: new
Priority: normal | Component: Engine: Private
Version: | Resolution:
Keywords: | Game: Private Eye
-------------------------+------------------------------
Comment (by neuromancer):
Confirmed by ASAN (MacOS, arm64):
{{{
005: If you want to play the game that follows the plot of the book
"Little Sister", then click Original Plot.
=================================================================
==15420==ERROR: AddressSanitizer: heap-buffer-overflow on address
0x62d0005f82fc at pc 0x00010ca4b284 bp 0x00016f421b40 sp 0x00016f4212f0
READ of size 1204 at 0x62d0005f82fc thread T0
#0 0x00010ca4b280 in __asan_memcpy+0x3f4
(libclang_rt.asan_osx_dynamic.dylib:arm64e+0x3b280)
#1 0x000101ca9e4c in SurfaceSdlGraphicsManager::copyRectToOverlay(void
const*, int, int, int, int, int) surfacesdl-graphics.cpp:2116
#2 0x0001019b83bc in ModularGraphicsBackend::copyRectToOverlay(void
const*, int, int, int, int, int) modular-backend.cpp:245
#3 0x000101d77d60 in Video::Subtitles::drawSubtitle(unsigned int,
bool, bool) subtitles.cpp:448
#4 0x0001013a3dc8 in Private::PrivateEngine::run() private.cpp:426
#5 0x000100bdede0 in runGame(Plugin const*, OSystem&, DetectedGame
const&, void const*) main.cpp:317
#6 0x000100bd2194 in scummvm_main main.cpp:803
#7 0x000100bbc204 in main macosx-main.cpp:44
#8 0x00019b35ab94 in start+0x17b8 (dyld:arm64e+0xfffffffffff3ab94)
0x62d0005f82fc is located 0 bytes after 32508-byte region
[0x62d0005f0400,0x62d0005f82fc)
allocated by thread T0 here:
#0 0x00010ca4d67c in calloc+0x80
(libclang_rt.asan_osx_dynamic.dylib:arm64e+0x3d67c)
#1 0x0001022990a4 in Graphics::Surface::create(short, short,
Graphics::PixelFormat const&) surface.cpp:152
#2 0x000101d743d8 in Video::Subtitles::setBBox(Common::Rect const&)
subtitles.cpp:352
#3 0x0001013a7b28 in Private::PrivateEngine::adjustSubtitleSize()
private.cpp:1501
#4 0x0001013df6d0 in
Private::PrivateEngine::loadSubtitles(Common::Path const&)
private.cpp:1534
#5 0x0001013c2700 in Private::PrivateEngine::playSound(Common::String
const&, unsigned int, bool, bool) private.cpp:1486
#6 0x000101353ca0 in Private::fSound(Common::Array<Private::Datum>)
funcs.cpp:536
#7 0x000101372130 in Private::call(char const*,
Common::Array<Private::Datum> const&) funcs.cpp:891
#8 0x000101337ac4 in Private::Gen::funcpush() code.cpp:156
#9 0x000101333fdc in Private::Gen::execute(int (**)()) code.cpp:422
#10 0x0001013402b0 in Private::Gen::ifcode() code.cpp:394
#11 0x000101333fdc in Private::Gen::execute(int (**)()) code.cpp:422
#12 0x0001013402b0 in Private::Gen::ifcode() code.cpp:394
#13 0x000101333fdc in Private::Gen::execute(int (**)()) code.cpp:422
#14 0x0001013404d0 in Private::Gen::ifcode() code.cpp:397
#15 0x000101333fdc in Private::Gen::execute(int (**)()) code.cpp:422
#16 0x000101333c28 in Private::Gen::VM::run() code.cpp:58
#17 0x0001013a3364 in Private::PrivateEngine::run() private.cpp:417
#18 0x000100bdede0 in runGame(Plugin const*, OSystem&, DetectedGame
const&, void const*) main.cpp:317
#19 0x000100bd2194 in scummvm_main main.cpp:803
#20 0x000100bbc204 in main macosx-main.cpp:44
#21 0x00019b35ab94 in start+0x17b8 (dyld:arm64e+0xfffffffffff3ab94)
SUMMARY: AddressSanitizer: heap-buffer-overflow surfacesdl-
graphics.cpp:2116 in SurfaceSdlGraphicsManager::copyRectToOverlay(void
const*, int, int, int, int, int)
Shadow bytes around the buggy address:
0x62d0005f8000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x62d0005f8080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x62d0005f8100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x62d0005f8180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x62d0005f8200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x62d0005f8280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00[04]
0x62d0005f8300: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x62d0005f8380: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x62d0005f8400: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x62d0005f8480: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x62d0005f8500: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
}}}
It seems to be an issue in the SDL surface backed.
--
Ticket URL: <https://bugs.scummvm.org/ticket/16217#comment:3>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list