Engine: Add error path for remove_entity() and unsafe entity ids
This commit is contained in:
parent
ff0ca9ba67
commit
679714c8be
|
@ -120,11 +120,17 @@ static cell AMX_NATIVE_CALL create_entity(AMX *amx, cell *params)
|
||||||
static cell AMX_NATIVE_CALL remove_entity(AMX *amx, cell *params)
|
static cell AMX_NATIVE_CALL remove_entity(AMX *amx, cell *params)
|
||||||
{
|
{
|
||||||
int id = params[1];
|
int id = params[1];
|
||||||
|
if (id >= 0 && id <= gpGlobals->maxClients)
|
||||||
|
{
|
||||||
|
MF_LogError(amx, AMX_ERR_NATIVE, "Entity %d can not be removed", id);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
edict_t *pEnt = INDEXENT2(id);
|
edict_t *pEnt = INDEXENT2(id);
|
||||||
|
|
||||||
if (FNullEnt(pEnt))
|
if (FNullEnt(pEnt))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
REMOVE_ENTITY(pEnt);
|
REMOVE_ENTITY(pEnt);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -621,6 +621,8 @@ native create_entity(const szClassname[]);
|
||||||
*
|
*
|
||||||
* @return 1 if entity was sucessfully removed, 0 if an invalid entity
|
* @return 1 if entity was sucessfully removed, 0 if an invalid entity
|
||||||
* was provided
|
* was provided
|
||||||
|
* @error If an entity index in the range of 0 to MaxClients is
|
||||||
|
* provided, an error will be thrown.
|
||||||
*/
|
*/
|
||||||
native remove_entity(iIndex);
|
native remove_entity(iIndex);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user