Server crashes when kicking a player inside OnPlayerStateChange

Started by SA:MP, May 06, 2023, 02:28 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

SA:MP

Server crashes when kicking a player inside OnPlayerStateChange

When using Kick(playerid) inside OnPlayerStateChange, and the newstate is PLAYER_STATE_DRIVER, the server crashes:



0.3.DL Windows:


Code:

[22:11:08] [debug] Server crashed due to an unknown error
[22:11:08] [debug] Native backtrace:
[22:11:08] [debug] #0 004874d1 in ?? () in samp-server.exe
[22:11:08] [debug] #1 004950b3 in ?? () in samp-server.exe
[22:11:08] [debug] #2 777fb8d0 in ?? () in C:\WINDOWS\SYSTEM32\ntdll.dll

After making some internal debugging, it seems this happens because the server tries to use the player's pointer after calling the callback, but the pointed memory was already freed because the player was kicked.

Source: Server crashes when kicking a player inside OnPlayerStateChange