Bug#737363: higan: crashes when importing or loading unheadered NES ROM
Michael Gold
michael at bitplane.org
Sat Feb 1 23:35:09 UTC 2014
Package: higan
Version: 094-2
When I try to import an NES ROM without an iNES header, higan segfaults.
I don't see any mention in the user guide about preferred ROM formats
(headered/unheadered, zipped, etc.), but anything unsupported should
fail with a clear error message. Details follow.
- Michael
E.g., with this ROM:
"Super Mario Bros. (World).nes" size 40960
sha1 facee9c577a5262dbe33ac4930bb0b58c8c037f7
sha256 fcb6a0ef3a20c19b356005fbb21dc8009563b1cb5a9aaebc8e9386b4a8c5912e
the import dialog crashes here (note the 'length' variable):
Program received signal SIGSEGV, Segmentation fault.
0x0000000000526b0d in nall::file::write (this=0x7fffffffbd20,
buffer=0x14b9001 <Address 0x14b9001 out of bounds>, length=4156826804)
at ./nall/file.hpp:173
173 while(length--) write(*buffer++);
Before crashing it created a directory in the game library:
$ echo *
manifest.bml program.rom
$ cat manifest.bml
unverified
information
title: Super Mario Bros. (World)
$ wc -c program.rom
1753088 program.rom
$
When I restart and try to load that, it crashes as follows:
Program received signal SIGSEGV, Segmentation fault.
0x000000000068db0f in Famicom::Cartridge::power (
this=0x9f34e0 <Famicom::cartridge>) at fc/cartridge/cartridge.cpp:49
49 board->power();
(gdb)
If I add a header to the file, higan can successfully import and run it:
$ (printf 'NES\x1a\2\1\1\0\0\0\0\0\0\0\0\0' \
&& cat "Super Mario Bros. (World).nes") \
> "Super Mario Bros. (World) [!].nes"
[import game and cd to its directory]
$ cat manifest.bml
unverified
cartridge
board type=NES-NROM-256
mirror mode=vertical
prg
rom name=program.rom size=0x8000
chr
rom name=character.rom size=0x2000
information
title: Super Mario Bros. (World) [!]
$ cat program.rom character.rom | sha256sum
fcb6a0ef3a20c19b356005fbb21dc8009563b1cb5a9aaebc8e9386b4a8c5912e -
$
-- System Information:
Debian Release: jessie/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 3.11-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages higan depends on:
ii libao4 1.1.0-2
ii libasound2 1.0.27.2-3
ii libatk1.0-0 2.10.0-2
ii libc6 2.17-97
ii libcairo2 1.12.16-2
ii libfontconfig1 2.11.0-2
ii libfreetype6 2.5.2-1
ii libgcc1 1:4.8.2-14
ii libgdk-pixbuf2.0-0 2.28.2-1+b1
ii libgl1-mesa-glx [libgl1] 9.2.2-1
ii libglib2.0-0 2.36.4-1
ii libgtk2.0-0 2.24.22-1
ii libopenal1 1:1.14-4
ii libpango-1.0-0 1.36.0-1+b1
ii libpangocairo-1.0-0 1.36.0-1+b1
ii libpangoft2-1.0-0 1.36.0-1+b1
ii libpulse0 4.0-6+b1
ii libsdl1.2debian 1.2.15-8
ii libstdc++6 4.8.2-14
ii libudev1 204-6
ii libx11-6 2:1.6.2-1
ii libxext6 2:1.3.2-1
ii libxv1 2:1.0.10-1
higan recommends no packages.
higan suggests no packages.
-- no debconf information
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-games-devel/attachments/20140201/6b56d39f/attachment.sig>
More information about the Pkg-games-devel
mailing list