Skip to content

Commit 7f3b56c

Browse files
committed
fix: ispaused invalid iterator
1 parent ccce734 commit 7f3b56c

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

core/sourcehook/sourcehook_impl.h

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,9 +256,20 @@ namespace SourceHook
256256

257257
ICleanupTask *m_CleanupTask;
258258

259+
bool isValidIterator(List<CHook>::iterator &myIter, List<CHook> &myList) {
260+
for (auto iter = myList.begin(); iter != myList.end(); ++iter) {
261+
if (iter == myIter) {
262+
return true;
263+
}
264+
}
265+
return false;
266+
}
267+
259268
void SkipPaused(List<CHook>::iterator &iter, List<CHook> &list)
260269
{
261-
while (iter != list.end() && iter->IsPaused())
270+
if (!iter || !isValidIterator(iter, list))
271+
iter = list.end();
272+
while (iter != list.end() && iter && iter->IsPaused())
262273
++iter;
263274
}
264275
public:

0 commit comments

Comments
 (0)