- --
Viewing Issue Advanced Details
ID | Category [?] | Severity [?] | Reproducibility | Date Submitted | Last Update |
---|---|---|---|---|---|
02763 | Crash/Freeze | Critical (emulator) | Always | Dec 23, 2008, 21:56 | Dec 24, 2008, 23:41 |
Tester | Firewave | View Status | Public | Platform | MAME (Self-compiled) |
Assigned To | Phil Bennett | Resolution | Fixed | OS | Windows XP/Vista 64-bit |
Status [?] | Resolved | Driver | |||
Version | 0.128u7 | Fixed in Version | 0.129 | Build | Debug |
Fixed in Git Commit | Github Pull Request # | ||||
Summary | 02763: some leland.c sets: Access Violation | ||||
Description |
Affects (too much for the "Affected Sets" field): alleymas basebal2 cerberus dangerz dblplay mayhem powrplay strkzone upyoural wseries ----------------------------------------------------- Exception at EIP=004B16D9 (machine_reset_leland+0x0281): ACCESS VIOLATION While attempting to read memory at 00000024 ----------------------------------------------------- EAX=00000000 EBX=08151F08 ECX=00000003 EDX=110A1FFC ESI=00000000 EDI=00000000 EBP=0022FD98 ESP=0022FD88 Program received signal SIGSEGV, Segmentation fault. 0x004a1477 in cpu_get_type (device=0x0) at src/emu/cpuexec.h:303 303 const cpu_config *config = device->inline_config; (gdb) bt full #0 0x004a1477 in cpu_get_type (device=0x0) at src/emu/cpuexec.h:303 config = (const cpu_config *) 0x0 #1 0x004a13db in machine_reset_leland (machine=0xad31efc) at src/mame/machine/leland.c:413 space = (const address_space *) 0x12291750 #2 0x009c92fa in soft_reset (machine=0xad31efc, ptr=0x0, param=0) at src/emu/mame.c:1606 mame = (mame_private *) 0xad41f68 cb = (callback_item *) 0x0 #3 0x009c762f in mame_execute (options=0x8041e58) at src/emu/mame.c:350 settingsloaded = 0 driver = (const game_driver *) 0x148d800 machine = (running_machine *) 0xad31efc mame = (mame_private *) 0xad41f68 cb = (callback_item *) 0x8041e58 gamename = (astring *) 0xad31f00 exit_pending = 0 error = 0 firstgame = 0 firstrun = 0 #4 0x00bdb66c in cli_execute (argc=5, argv=0x7fb1fec, osd_options=0x21ae990) at src/emu/clifront.c:171 options = (core_options *) 0x8041e58 gamename = (astring *) 0x8021f00 exename = (astring *) 0x8031f00 gamename_option = 0x8071f08 "alleymas" driver = (const game_driver *) 0x148d800 result = -1 #5 0x009618b8 in utf8_main (argc=5, argv=0x7fb1fec) at src/osd/windows/winmain.c:257 ext = 0x28e86b8 ".map" #6 0x0123f599 in main (argc=5, a_argv=0x6452898) at src/osd/windows/main.c:72 i = 5 rc = 2293624 utf8_argv = (char **) 0x7fb1fec argv = (TCHAR **) 0x6452908 wenviron = (WCHAR **) 0x6455110 startupinfo = -1 |
||||
Steps To Reproduce | |||||
Additional Information | |||||
Github Commit | |||||
Flags | |||||
Regression Version | 0.128u7 | ||||
Affected Sets / Systems | some leland.c sets | ||||
Attached Files
|
|||||
Relationships
There are no relationship linked to this issue. |
Notes
1
No.03389
Atari Ace Senior Tester
Dec 24, 2008, 22:58
|
It's not safe to call cpu_get_type with a NULL pointer. This fixes itdiff -Nru zzs1/src/mame/machine/leland.c 1hack/src/mame/machine/leland.c --- zzs1/src/mame/machine/leland.c 2008-12-18 07:35:40.062500000 -0800 +++ 1hack/src/mame/machine/leland.c 2008-12-24 14:56:53.875000000 -0800 @@ -410,7 +410,7 @@ memory_set_bankptr(machine, 3, &slave_base[0x10000]); /* if we have an I80186 CPU, reset it */ - if (cpu_get_type(machine->cpu[2]) == CPU_I80186) + if (machine->cpu[2] != NULL && cpu_get_type(machine->cpu[2]) == CPU_I80186) leland_80186_sound_init(); } |
---|