Author: rharabien
Date: Thu Oct 6 19:53:51 2011
New Revision: 54027
URL: http://svn.reactos.org/svn/reactos?rev=54027&view=rev
Log:
[NTOSKRNL] - Set special value in Next ptr when Ex(f)InterlockedPopEntryList is called on checked build. Fixes all ntos:ExSingleList kmtests.
Modified:
trunk/reactos/ntoskrnl/ex/interlocked.c
Modified: trunk/reactos/ntoskrnl/ex/interlocked.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/interlocked.c?…
==============================================================================
--- trunk/reactos/ntoskrnl/ex/interlocked.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ex/interlocked.c [iso-8859-1] Thu Oct 6 19:53:51 2011
@@ -210,6 +210,10 @@
/* Pop the first entry from the list */
ListEntry = PopEntryList(ListHead);
+#if DBG
+ if (ListEntry)
+ ListEntry->Next = (PSINGLE_LIST_ENTRY)0xBADDD0FF;
+#endif
/* Release the spinlock and restore interrupts */
_ExiReleaseSpinLockAndRestoreInterupts(Lock, Enable);
@@ -412,6 +416,10 @@
/* Pop the first entry from the list */
ListEntry = PopEntryList(ListHead);
+#if DBG
+ if (ListEntry)
+ ListEntry->Next = (PSINGLE_LIST_ENTRY)0xBADDD0FF;
+#endif
/* Release the spinlock and restore interrupts */
_ExiReleaseSpinLockAndRestoreInterupts(Lock, Enable);
Author: rharabien
Date: Thu Oct 6 19:39:37 2011
New Revision: 54026
URL: http://svn.reactos.org/svn/reactos?rev=54026&view=rev
Log:
[NTOSKRNL]
- Save special values in F/Blink when Ex(f)InterlockedRemoveHeadList is called on checked build. Fixes all ntos:ExDoubleList kmtests
Modified:
trunk/reactos/ntoskrnl/ex/interlocked.c
Modified: trunk/reactos/ntoskrnl/ex/interlocked.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/interlocked.c?…
==============================================================================
--- trunk/reactos/ntoskrnl/ex/interlocked.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ex/interlocked.c [iso-8859-1] Thu Oct 6 19:39:37 2011
@@ -183,6 +183,10 @@
{
/* Remove the first entry from the list head */
ListEntry = RemoveHeadList(ListHead);
+#if DBG
+ ListEntry->Flink = (PLIST_ENTRY)0xBADDD0FF;
+ ListEntry->Blink = (PLIST_ENTRY)0xBADDD0FF;
+#endif
}
/* Release the spinlock and restore interrupts */
@@ -381,6 +385,10 @@
{
/* Remove the first entry from the list head */
ListEntry = RemoveHeadList(ListHead);
+#if DBG
+ ListEntry->Flink = (PLIST_ENTRY)0x0BADD0FF;
+ ListEntry->Blink = (PLIST_ENTRY)0x0BADD0FF;
+#endif
}
/* Release the spinlock and restore interrupts */