Halflife: [GoldSource] Host_Kill_f crash server HLDS bug (command kill)

Created on 15 Apr 2019  路  14Comments  路  Source: ValveSoftware/halflife

hi, the "kill" command is registered in the client/server, but here it is only the server (swds/engine_i486)

How the bug occurs:

1.connect to the server.
2.you expect to be alive
3.slow down the client (HW/SW) whether you do it with cheat engine/fps_max or other software
4.open the console and throw the command retry
5.close the connect bar (double click on the Steam logo) and then open the console type the "kill" command
Server gets crash


Because the player remained alive when he gave reconnect/retry (he was not set as disconnected in Host_Reconnect_f that uses SV_New_f)
Then run the gEntityInterface.pfnClientKill player was not found and here occurs crash to the server

123123-min

Original function without fixed :

fasfasfsaf

Code fix :
dasdsadasd
**void Host_Kill_f(void)
{

if (cmd_source == src_command){
    Cmd_ForwardToServer();
    return;
}
if (sv_player->v.health <= 0.0f){
    SV_ClientPrintf("Can't suicide -- already dead!\n");
    return;
}
if (g_pcls.state < ca_connected) {
    SV_ClientPrintf("You can't kill yourself if you're not connected!\n");
    return;
}
    gGlobalVariables.time = g_psv.time;
    gEntityInterface.pfnClientKill(sv_player);

}**

Fix proposed

Most helpful comment

@SkillartzHD I confirmed that as well. When I tested this I did so on a listen server so I didn't notice that the check I was making was checking the server's connected state rather than the state of the player executing the command. The next update should have the proper check in it.

All 14 comments

how are you going to print a message to a non connected player ?

@justgo97 when he connects (ca_connecting)

amxmodx fix :
host_kill_f_fixx.txt

Tested on Linux server but I can't reproduce it.

@GiovaniFerraroTrivelli server should not run dproto, he fixes this bug

@GiovaniFerraroTrivelli server should not run dproto, he fixes this bug

Confirmed, you are right. Tested with reHLDS too but here is fixed.

@SkillartzHD This should be fixed in the current CS beta.

@mikela-valve , the check is not good, it is detected even if it is connected
image
also opengl option is software

@SkillartzHD I confirmed that as well. When I tested this I did so on a listen server so I didn't notice that the check I was making was checking the server's connected state rather than the state of the player executing the command. The next update should have the proper check in it.

Fixed in beta 'Exe build: 11:12:36 May 21 2019 (8244)'.

This bug works on last beta again.

Fixed in 8254 build.

@mikela-valve close this too

wait till skillartz test it.

Fixed in last build.

Was this page helpful?
0 / 5 - 0 ratings