Mike Nordell <tamlin>

- Add two checks for infinite loops. The latter gets triggered in some cases, a memory overwrite is suspected, or a race condition.

svn path=/trunk/; revision=29471
This commit is contained in:
Aleksey Bragin 2007-10-09 17:00:11 +00:00
parent 461c0ad2d1
commit 414b4db8ac

View file

@ -97,11 +97,21 @@ CmiWorkerThread(PVOID Param)
!(CurrentKey->Flags & KO_MARKED_FOR_DELETE))
{
ObDereferenceObject(CurrentKey);
if (CurrentEntry == CmiKeyObjectListHead.Blink)
{
DPRINT("Registry loop detected! Crashing\n");
KEBUGCHECK(0);
}
CurrentEntry = CmiKeyObjectListHead.Blink;
Count++;
}
else
{
if (CurrentEntry == CurrentEntry->Blink)
{
DPRINT("Registry loop detected! Crashing\n");
KEBUGCHECK(0);
}
CurrentEntry = CurrentEntry->Blink;
}
}