Fix possible null pointer dereference

This commit is contained in:
Benau
2018-03-26 00:32:26 +08:00
parent 946a902f98
commit 42e1873458
2 changed files with 4 additions and 3 deletions

View File

@@ -946,8 +946,9 @@ bool STKHost::peerExists(const TransportAddress& peer)
*/
std::shared_ptr<STKPeer> STKHost::getServerPeerForClient() const
{
assert(m_peers.size() == 1);
assert(NetworkConfig::get()->isClient());
if (m_peers.size() != 1)
return nullptr;
return m_peers.begin()->second;
} // getServerPeerForClient

View File

@@ -131,7 +131,7 @@ void NetworkingLobby::init()
getWidget("send")->setActive(false);
// Connect to server now if we have saved players and not disconnected
if (m_joined_server &&
if (!LobbyProtocol::get<LobbyProtocol>() &&
!NetworkConfig::get()->getNetworkPlayers().empty())
std::make_shared<ConnectToServer>(m_joined_server)->requestStart();
@@ -253,7 +253,7 @@ void NetworkingLobby::onUpdate(float delta)
}
else
{
if (m_server_peer.expired())
if (m_server_peer.expired() && STKHost::existHost())
m_server_peer = STKHost::get()->getServerPeerForClient();
core::stringw total_msg;
for (auto& string : m_server_info)