Hi,

I finally had the time to sit down and look a bit more at this. It turns out I can make the crash go away by adding the following line to IniConfig::clear():

emulation_s.engine = NULL;

It seems that when it's reading the 'Engine' field from sidplayfp.ini, IniConfig::readString() never even gets to the part where it allocated a buffer for it. So presumably it was always left uninitialized, but it took the hardening flags to actually make it crash.

(Another part of the reason may have been that I never created any sidplayfp.ini myself, so I was provided with a default file where all entries were empty.)

For reference, here is what the backtrace looked like:

(gdb) bt
#0  0x8000bb21 in ConsolePlayer::ConsolePlayer (this=0xbffff0e8,
name=0xbffff49c "/home/d91tan/Kickstarter/Breakout/Hack/sidplayfp-1.2.0/src/sidplayfp") at player.cpp:117
#1  0x8000396f in main (argc=1, argv=0xbffff304) at main.cpp:41
(gdb) print emulation
$1 = {engine = 0xffffffff <Address 0xffffffff out of bounds>,
  modelDefault = SidConfig::PAL, modelForced = false,
  sidModel = SidConfig::MOS6581, forceModel = false, filter = true,
  bias = <optimized out>, filterCurve6581 = <optimized out>,
  filterCurve8580 = <optimized out>}

Regards,

Torbjörn Andersson


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to