mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-25 06:57:28 +00:00
Chat: Fix possible nullptr access (#1238)
Fixes a possible nullptr access. This is the only call to GetPlayerData where we do not check the result for some reason, so this PR adds in the check and a resulting log line. Code compiles, unsure how to reproduce the issue, however here is the crash dump I used to deduce this being the possible issue ``` Error: signal 11: [00] CatchUnhandled(int)(+0x316) [0x561469100336] [01] /lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7f65e8e45520] [02] /DarkflameServer/build/ChatServer(+0x32719) [0x5614690fa719] [03] HandlePacket(Packet*)(+0x2a0) [0x5614690fcfb0] [04] /DarkflameServer/build/ChatServer(main+0x92e) [0x5614690fb75e] [05] /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7f65e8e2cd90] [06] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7f65e8e2ce40] [07] /DarkflameServer/build/ChatServer(_start+0x25) [0x5614690fc375] ```
This commit is contained in:
parent
3a37f9581c
commit
a5e46e2844
@ -118,6 +118,11 @@ void ChatPacketHandler::HandleFriendRequest(Packet* packet) {
|
||||
inStream.Read(isBestFriendRequest);
|
||||
|
||||
auto requestor = playerContainer.GetPlayerData(requestorPlayerID);
|
||||
if (!requestor) {
|
||||
LOG("No requestor player %llu sent to %s found.", requestorPlayerID, playerName.c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
if (requestor->playerName == playerName) {
|
||||
SendFriendResponse(requestor, requestor, eAddFriendResponseType::MYTHRAN);
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user