[NTOSKRNL] Add ASSERTs to make sure, we never use an uninitialized variable
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Wed, 11 Oct 2017 16:35:54 +0000 (18:35 +0200)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Thu, 19 Oct 2017 06:36:57 +0000 (08:36 +0200)
ntoskrnl/mm/ARM3/vadnode.c

index 4ada3ad..b20839a 100644 (file)
@@ -601,7 +601,7 @@ MiFindEmptyAddressRangeDownTree(IN SIZE_T Length,
                                 OUT PULONG_PTR Base,
                                 OUT PMMADDRESS_NODE *Parent)
 {
-    PMMADDRESS_NODE Node, OldNode, Child;
+    PMMADDRESS_NODE Node, OldNode = NULL, Child;
     ULONG_PTR LowVpn, HighVpn, AlignmentVpn;
     PFN_NUMBER PageCount;
 
@@ -670,8 +670,14 @@ MiFindEmptyAddressRangeDownTree(IN SIZE_T Length,
             }
             else
             {
-                /* Node has a right child, the node we had before is the most
-                   left grandchild of that right child, use it as parent. */
+                /* Node has a right child. This means we must have already
+                   moved one node left from the right-most node we started
+                   with, thus we already have an OldNode! */
+                ASSERT(OldNode != NULL);
+
+                /* The node we had before is the most left grandchild of 
+                   that right child, use it as parent. */
+                ASSERT(RtlLeftChildAvl(OldNode) == NULL);
                 *Parent = OldNode;
                 return TableInsertAsLeft;
             }