Opened 6 years ago

Closed 6 years ago

#6498 closed defect (fixed)

RINGWORLD2: Crash when talking to Miranda

Reported by: eriktorbjorn Owned by: dreammaster
Priority: normal Component: Engine: TsAGE
Keywords: Cc:
Game: Return to Ringworld

Description

English CD version

At the beginning of the game, I went to the bridge and spoke to Miranda (or Seeker). Miranda gave me an infodump of what happened since the end of the previous game. But when I tried to speak to her again, the game crashed. Valgrind gave the following error:

==12258== Invalid read of size 4
==12258== at 0x907D1E1: TsAGE::ConversationChoiceDialog::execute(Common::Array const&) (converse.cpp:451)
==12258== by 0x907EF9A: TsAGE::StripManager::signal() (converse.cpp:926)
==12258== by 0x8E6DFB4: TsAGE::Action::attached(TsAGE::EventHandler, TsAGE::EventHandler, char) (core.cpp:239)
==12258== by 0x8E6DC72: TsAGE::EventHandler::setAction(TsAGE::Action
, TsAGE::EventHandler, ...) (core.cpp:164)
==12258== by 0x907DED8: TsAGE::StripManager::start(int, TsAGE::EventHandler
, TsAGE::StripCallback) (converse.cpp:638)
==12258== by 0x907DF0E: TsAGE::StripManager::start3(int, TsAGE::EventHandler
, unsigned char*) (converse.cpp:643)
==12258== by 0x8F328D6: TsAGE::Ringworld2::Scene300::signal() (ringworld2_scenes0.cpp:3751)
==12258== by 0x8E6DE85: TsAGE::Action::remove() (core.cpp:206)
==12258== by 0x907BB55: TsAGE::SequenceManager::remove() (converse.cpp:88)
==12258== by 0x907BBE0: TsAGE::SequenceManager::signal() (converse.cpp:100)
==12258== by 0x8E6DF55: TsAGE::Action::dispatch() (core.cpp:226)
==12258== by 0x8FDD225: TsAGE::Scene::dispatch() (scenes.cpp:327)
==12258== Address 0x14 is not stack'd, malloc'd or (recently) free'd

Since line 451 of converse.cpp is just a call to draw(), perhaps it's the ConversationChoiceDialog object itself that hasn't been allocated? Somehow.

Ticket imported from: bugs/6498.

Change History (4)

comment:1 by dreammaster, 6 years ago

Owner: set to dreammaster

comment:2 by eriktorbjorn, 6 years ago

I was able to return to the bridge to talk to Miranda later, but some - not all - conversation options would still cause crashes. (In my original bug report, I wouldn't even get a conversation menu.)

comment:3 by dreammaster, 6 years ago

Turns out it was the result of a mis-cast commonly done in many of the scene specific speaker classes

comment:4 by dreammaster, 6 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.