From 15dd0a2fc304eeb0990badf0a88ed4933ed1f1c8 Mon Sep 17 00:00:00 2001 From: Gent S Date: Thu, 26 Nov 2020 22:28:18 -0500 Subject: [PATCH] Add missing sanity checks to BuddyManager --- src/BuddyManager.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/BuddyManager.cpp b/src/BuddyManager.cpp index 3dc494f..a7b3b03 100644 --- a/src/BuddyManager.cpp +++ b/src/BuddyManager.cpp @@ -94,6 +94,9 @@ void BuddyManager::requestBuddy(CNSocket* sock, CNPacketData* data) { Player* plr = PlayerManager::getPlayer(sock); Player* otherPlr = PlayerManager::getPlayerFromID(req->iBuddyID); + if (otherPlr == nullptr) + return; + if (getAvailableBuddySlot(plr) == -1 || getAvailableBuddySlot(otherPlr) == -1) { INITSTRUCT(sP_FE2CL_REP_REQUEST_MAKE_BUDDY_FAIL, failResp); @@ -166,6 +169,9 @@ void BuddyManager::reqAcceptBuddy(CNSocket* sock, CNPacketData* data) { Player* plr = PlayerManager::getPlayer(sock); Player* otherPlr = PlayerManager::getPlayerFromID(req->iBuddyID); + if (otherPlr == nullptr) + return; // sanity check + CNSocket* otherSock = PlayerManager::getSockFromID(otherPlr->iID); int slotA = getAvailableBuddySlot(plr);