summaryrefslogtreecommitdiff
path: root/src/saveload/cargomonitor_sl.cpp
diff options
context:
space:
mode:
authorJonathan G Rennison <j.g.rennison@gmail.com>2019-04-08 07:57:42 +0100
committerMichael Lutz <michi@icosahedron.de>2019-04-09 22:56:23 +0200
commit01f957c51fcb294c4adb178fc6a1a123fe7c0d92 (patch)
treed88a4bf5f026eba14aba86ce1ed2fed0489d688e /src/saveload/cargomonitor_sl.cpp
parent8b1880187a15173c11b9aeed69db3d8be2fd36b3 (diff)
downloadopenttd-01f957c51fcb294c4adb178fc6a1a123fe7c0d92.tar.xz
Fix: Crash due to use of invalid iterator in ClientNetworkContentSocketHandler
In particular this crash can be observed when using the bootstrap GUI to download the base graphics. In ClientNetworkContentSocketHandler::OnReceiveContentInfo ClientNetworkContentSocketHandler::callbacks is iterated, using an iterator cb->OnReceiveContentInfo() is called (cb is of type BootstrapAskForDownloadWindow) This calls new BootstrapContentDownloadStatusWindow() This inherits from BaseNetworkContentDownloadStatusWindow The constructor of which calls _network_content_client.AddCallback(this) This reallocates the std::vector which is being iterated in ClientNetworkContentSocketHandler::OnReceiveContentInfo This results in iter being invalid, and an assertion failure occurs shortly afterwards due to its use in the next iteration of cb->OnReceiveContentInfo() Adjust all locations where ClientNetworkContentSocketHandler::callbacks is iterated to avoid problematic behaviour
Diffstat (limited to 'src/saveload/cargomonitor_sl.cpp')
0 files changed, 0 insertions, 0 deletions