From a561cb18de9d3fd886f8cc61e5bc41b8f60700f7 Mon Sep 17 00:00:00 2001 From: ephphatha Date: Wed, 11 Aug 2021 22:02:58 +1000 Subject: [PATCH] Explicitly check values are in expected range instead of casting to unsigned for <0 --- Source/player.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/player.cpp b/Source/player.cpp index 2e363e835..a34d07c49 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -2655,7 +2655,7 @@ void AddPlrExperience(int pnum, int lvl, int exp) return; } - if ((DWORD)pnum >= MAX_PLRS) { + if (pnum >= MAX_PLRS || pnum < 0) { app_fatal("AddPlrExperience: illegal player %i", pnum); } auto &player = Players[pnum]; @@ -2685,7 +2685,7 @@ void AddPlrExperience(int pnum, int lvl, int exp) } player._pExperience += exp; - if ((DWORD)player._pExperience > MAXEXP) { + if (player._pExperience > MAXEXP || player._pExperience < 0) { player._pExperience = MAXEXP; }