From aba60c560d23cc14282678b03fc00272d691bc70 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Mon, 6 Jan 2020 11:50:41 +0000 Subject: [PATCH] Fix OOB in missiles.cpp MFILE_NONE does not correspond to the last item of misfiledata array and is actually greater than the length of that array causing out-of-bounds crash on iOS (reproduced when applying rogue's Disarm Trap skill). --- Source/missiles.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Source/missiles.cpp b/Source/missiles.cpp index 2c1af52ac..5c23e5b2c 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -1067,6 +1067,10 @@ void SetMissAnim(int mi, int animtype) { int dir = missile[mi]._mimfnum; + if (animtype > MFILE_NULL) { + animtype = MFILE_NULL; + } + missile[mi]._miAnimType = animtype; missile[mi]._miAnimFlags = misfiledata[animtype].mFlags; missile[mi]._miAnimData = misfiledata[animtype].mAnimData[dir];