Merge pull request #248 from JJY-sec/master

Add OOB check
This commit is contained in:
drian0
2021-04-14 06:08:32 +02:00
committed by GitHub
+8 -1
View File
@@ -747,6 +747,10 @@ void parsemessages(int cn, playerent *d, ucharbuf &p, bool demo = false)
case SV_RELOAD:
{
int cn = getint(p), gun = getint(p);
if(!valid_weapon(gun)){
break;
}
playerent *p = getclient(cn);
if(p && p!=player1) p->weapons[gun]->reload(false);
break;
@@ -790,7 +794,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p, bool demo = false)
armour = getint(p),
health = getint(p);
playerent *target = getclient(tcn), *actor = getclient(acn);
if(!target || !actor) break;
if(!target || !actor || valid_weapon(gun)) break;
target->armour = armour;
target->health = health;
dodamage(damage, target, actor, -1, type==SV_GIBDAMAGE, false);
@@ -814,6 +818,9 @@ void parsemessages(int cn, playerent *d, ucharbuf &p, bool demo = false)
// medals_arrived=1;
loopi(medals) {
int mcn=getint(p); int mtype=getint(p); int mitem=getint(p);
if(mtype >= END_MDS || mtype<0){
break;
}
a_medals[mtype].assigned=1;
a_medals[mtype].cn=mcn;
a_medals[mtype].item=mitem;