[ros-diffs] [fireball] 29471: 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.
fireball at svn.reactos.org
fireball at svn.reactos.org
Tue Oct 9 19:00:12 CEST 2007
Author: fireball
Date: Tue Oct 9 21:00:11 2007
New Revision: 29471
URL: http://svn.reactos.org/svn/reactos?rev=29471&view=rev
Log:
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.
Modified:
trunk/reactos/ntoskrnl/cm/registry.c
Modified: trunk/reactos/ntoskrnl/cm/registry.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/cm/registry.c?rev=29471&r1=29470&r2=29471&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/cm/registry.c (original)
+++ trunk/reactos/ntoskrnl/cm/registry.c Tue Oct 9 21:00:11 2007
@@ -97,11 +97,21 @@
!(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;
}
}
More information about the Ros-diffs
mailing list