[Bug 47726] New: too many fonts cause memory corruption in Post Mortem and Still Life, need some limiting

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Sep 3 05:08:19 CDT 2019


https://bugs.winehq.org/show_bug.cgi?id=47726

            Bug ID: 47726
           Summary: too many fonts cause memory corruption in Post Mortem
                    and Still Life, need some limiting
           Product: Wine
           Version: 4.15
          Hardware: x86
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: gdi32
          Assignee: wine-bugs at winehq.org
          Reporter: zakarjor at yahoo.com
      Distribution: ---

I upgraded to Fedora 30 x86_64, and I now have a lot more fonts (lots of
multilingual fonts) than before.

When starting Post Mortem or Still Life, I get the following error:

wine: Unhandled page fault on read access to 0x3235363d at address 0x24036828
(thread 0009), starting debugger...

Running with WINEDEBUG=warn+heap I get
0009:Call msvcrt.??@YAPAXI at Z(0000ffff) ret=2429ef15
0009:Call ntdll.RtlAllocateHeap(00410000,00000000,0000ffff) ret=7e558363
...
0009:Call msvcrt.??@YAPAXI at Z(00000000) ret=2429ef15
0009:Call ntdll.RtlAllocateHeap(00410000,00000000,00000000) ret=7e558363
0009:Call ntdll.RtlAllocateHeap() retval=00480270 ret=7e558363
...
0009:Call ntdll.RtlFreeHeap(00410000,00000000,00480270) ret=7e55842a
0009:err:heap:HEAP_ValidateInUseArena Heap 0x410000: block 0x480270 tail
overwritten at 0x480270 (byte 0/24 == 0x33)

The register eax is supposed to be an address but looks like part of a font
name in ASCII. 

After going thru debugger, I found that there is a bug/limitation of string
size of 64KB, and when the list of font names is just below 64KB (0xffff), and
then appends one character, it goes over 64KB, but wraps around the size to 0
byte, which causes the memory corruption.

It would be nice to have gdi font module to limit the number of fonts to return
to the caller, or have some way to filter the type of fonts to return (like
don't return any Linux fonts), which should be consistent with Windows
environment.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list