The game can crash here because specificObject->getContainedBy() is a nullptr under certain conditions. This was introduced by #2239.
Crash reproduction:
RETAIL_COMPATIBLE_CRC must be disabled.
- Start a network match; no other players are required.
- Make sure to control the runahead value as that makes the following steps easier (10 or more works great).
- Build a transport unit, e.g. a Troop Crawler which is convenient because it already has units inside. GLA Technical or USA Chinook work as well.
- Click repeatedly on an occupant to exit.
It's crucial that the runahead / delay is significant enough that you can click multiple times on an occupant before the first exit order takes effect.
- Game crashes.
FWIW, Generals Online already disabled this part of #2239 with this change: GeneralsOnlineDevelopmentTeam@df03a12, by putting it behind a USE_STUBBJAX_TRANSPORT_CONTAIN_FIX macro. Unfortunately, we were not made aware of this crash issue.
The game can crash here because
specificObject->getContainedBy()is anullptrunder certain conditions. This was introduced by #2239.Crash reproduction:
RETAIL_COMPATIBLE_CRCmust be disabled.It's crucial that the runahead / delay is significant enough that you can click multiple times on an occupant before the first exit order takes effect.
FWIW, Generals Online already disabled this part of #2239 with this change: GeneralsOnlineDevelopmentTeam@df03a12, by putting it behind a
USE_STUBBJAX_TRANSPORT_CONTAIN_FIXmacro. Unfortunately, we were not made aware of this crash issue.