https://bugs.winehq.org/show_bug.cgi?id=54840
Bug ID: 54840 Summary: Stack overflow in setup of "Sunday... That One Day", a 16-bit children's religious educational game Product: Wine Version: 8.6 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: alexhenrie24@gmail.com Distribution: ---
Created attachment 74343 --> https://bugs.winehq.org/attachment.cgi?id=74343 Terminal output
The crash happens when running SETUP.EXE.
The game can be started directly from the CD by running SUNDAY.EXE, but even so it can't get past the title screen.
$ sha256sum 'Andrea and Alexander - Sunday... that One Day.iso' ac9b745e9aad776b5c05bf3488955c33de2a8d97e0561718f31149af425256de
https://bugs.winehq.org/show_bug.cgi?id=54840
Alex Henrie alexhenrie24@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |https://archive.org/downloa | |d/infobases-family-library/ | |Andrea%20and%20Alexander%20 | |-%20Sunday...%20that%20One% | |20Day.iso
https://bugs.winehq.org/show_bug.cgi?id=54840
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |win16
https://bugs.winehq.org/show_bug.cgi?id=54840
--- Comment #1 from Alex Henrie alexhenrie24@gmail.com --- This is odd: On Windows XP, SETUP.EXE creates a file in C:\Windows\Temp that starts with "~IN", ends with ".tmp", and is consistently 122,368 bytes in size. On Wine, a similar file is created in C:\users\alex\Temp, but it is consistently only 109,094 bytes in size. If I rename the file created on Windows to have a .exe extension instead of a .tmp extension, it runs on both Windows and Wine and pops up an error dialog that says "The following disk is required: Main installation disk". However, the file created on Wine runs on neither Wine nor Windows.
I wonder if the setup program is crashing because it is failing to extract the entire temporary file.
https://bugs.winehq.org/show_bug.cgi?id=54840
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |o.dierick@piezo-forte.be
--- Comment #2 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
You should compare the two files to see if it's simply truncated or a more complex corruption.
Regards.
https://bugs.winehq.org/show_bug.cgi?id=54840
--- Comment #3 from Alex Henrie alexhenrie24@gmail.com --- It's simply truncated.
https://bugs.winehq.org/show_bug.cgi?id=54840
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #4 from Zeb Figura z.figura12@gmail.com --- I guess the file in question is a 16-bit executable? I'm curious what differences a disassembler shows, or if the truncated file is even valid. (If you're looking for a functional 16-bit diassembler, I wrote [1] some time ago.)
[1] https://github.com/zfigura/semblance
https://bugs.winehq.org/show_bug.cgi?id=54840
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |Installer
https://bugs.winehq.org/show_bug.cgi?id=54840
--- Comment #5 from Alex Henrie alexhenrie24@gmail.com --- Created attachment 74351 --> https://bugs.winehq.org/attachment.cgi?id=74351 Hack to fix file extraction
The attached patch causes the temporary file to be extracted correctly, but it does not fix the stack overflow.
https://bugs.winehq.org/show_bug.cgi?id=54840
--- Comment #6 from Alex Henrie alexhenrie24@gmail.com --- This is getting weirder: SETUP.EXE crashes on Wine, but works perfectly on WineVDM on 64-bit Windows 10. What's the difference?
https://github.com/otya128/winevdm/releases/download/v0.8.0/otvdm-v0.8.1.zip
https://bugs.winehq.org/show_bug.cgi?id=54840
--- Comment #7 from Zeb Figura z.figura12@gmail.com --- (In reply to Alex Henrie from comment #6)
This is getting weirder: SETUP.EXE crashes on Wine, but works perfectly on WineVDM on 64-bit Windows 10. What's the difference?
https://github.com/otya128/winevdm/releases/download/v0.8.0/otvdm-v0.8.1.zip
I believe winevdm actually has quite a few patches on top of upstream Wine. Not sure if it's feasible at all to try to bisect the difference.
https://bugs.winehq.org/show_bug.cgi?id=54840
--- Comment #8 from Alex Henrie alexhenrie24@gmail.com --- I was able to compile and bisect WineVDM on Windows and the commit that fixed the crash appears to be https://github.com/otya128/winevdm/commit/d7b5dda9707af751ffed671d91455a8115...
https://bugs.winehq.org/show_bug.cgi?id=54840
--- Comment #9 from Alex Henrie alexhenrie24@gmail.com --- Created attachment 74375 --> https://bugs.winehq.org/attachment.cgi?id=74375 Hack that fixes the crash, but setup still won't start
The attached patch gets SETUP.EXE to extract the entire temporary file without crashing. Unfortunately, it just exits afterwards without starting the setup GUI. The patch is also fishy because WineVDM on Windows works without overallocating like this.