On Tue, Oct 07, 2003 at 12:29:15AM +0200, André Johansen wrote:
- Jukka Heinonen wrote:
| Okay, I have posted a patch to wine-patches that | should have fixed this bug. Let's see if that is | the case.
Thanks -- I've tested it, and it seems to get further now. It still crashes, though...
As you can see, it now crashes in another executable.
I think the problem is now that the program is able to call MSCDEX (DOS CDROM driver) routines but those routines crash.
There seems to be at least one obvious bug in MSCDEX that may be the reason for this crash. Unfortunately trace does not contain information about where the crash happened but I guess since this bug is in the same routine called on the last lines of trace (trace:int:MSCDEX_Handler CDROM device driver -> command <128>), fixing this bug may help.
Please, if you can, try the patch below and report what happens.
Index: dlls/winedos/int2f.c =================================================================== RCS file: /home/wine/wine/dlls/winedos/int2f.c,v retrieving revision 1.5 diff -u -r1.5 int2f.c --- dlls/winedos/int2f.c 22 Sep 2003 19:33:07 -0000 1.5 +++ dlls/winedos/int2f.c 7 Oct 2003 18:29:10 -0000 @@ -783,8 +783,9 @@
case 128: /* read long */ { - LPVOID dst = MapSL(MAKESEGPTR(PTR_AT(driver_request, 16, WORD), - PTR_AT(driver_request, 14, WORD))); + LPVOID dst = CTX_SEG_OFF_TO_LIN( context, + PTR_AT(driver_request, 16, WORD), + PTR_AT(driver_request, 14, WORD) ); DWORD at = PTR_AT(driver_request, 20, DWORD); WORD num = PTR_AT(driver_request, 18, WORD); RAW_READ_INFO rri;