Skip to content

Commit 480f754

Browse files
authored
Guard CF1 sprite loading against sprite array overflow (#123)
1 parent 6767235 commit 480f754

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

Source/Map/Original.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,10 @@ void cOriginalMap::loadCF1Spt(tSharedBuffer pSpriteData, bool pCF2) {
9999

100100

101101
for (uint16 HumanCount = 0; SptPtr != SptFileEnd; ++Sprite) {
102+
if (Sprite >= mSprites.data() + mSprites.size()) {
103+
break;
104+
}
105+
102106
++SptPtr;
103107
Sprite->mSheetIndex = 0x7C;
104108

@@ -127,6 +131,10 @@ void cOriginalMap::loadCF1Spt(tSharedBuffer pSpriteData, bool pCF2) {
127131
if (pCF2) {
128132
if (Sprite > mSprites.data())
129133
if (Sprite->mSpriteType == 4 && (Sprite - 1)->mSpriteType >= 114 && (Sprite - 1)->mSpriteType <= 117) {
134+
if ((Sprite + 1) >= (mSprites.data() + mSprites.size())) {
135+
break;
136+
}
137+
130138
++Sprite;
131139
}
132140
}

0 commit comments

Comments
 (0)