Author: akhaldi
Date: Fri Oct 11 18:12:16 2013
New Revision: 60615
URL:
http://svn.reactos.org/svn/reactos?rev=60615&view=rev
Log:
[NTOSKRNL]
* Fix the owner's attributes handling when releasing the working set lock. CIDs 731438
and 731439.
CORE-6681
Modified:
trunk/reactos/ntoskrnl/mm/ARM3/miarm.h
trunk/reactos/ntoskrnl/mm/ARM3/virtual.c
Modified: trunk/reactos/ntoskrnl/mm/ARM3/miarm.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/ARM3/miarm.h?r…
==============================================================================
--- trunk/reactos/ntoskrnl/mm/ARM3/miarm.h [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/mm/ARM3/miarm.h [iso-8859-1] Fri Oct 11 18:12:16 2013
@@ -1307,8 +1307,8 @@
VOID
MiUnlockProcessWorkingSetForFault(IN PEPROCESS Process,
IN PETHREAD Thread,
- IN BOOLEAN Safe,
- IN BOOLEAN Shared)
+ OUT PBOOLEAN Safe,
+ OUT PBOOLEAN Shared)
{
ASSERT(MI_WS_OWNER(Process));
@@ -1317,22 +1317,22 @@
{
/* Release unsafely */
MiUnlockProcessWorkingSetUnsafe(Process, Thread);
- Safe = FALSE;
- Shared = FALSE;
+ *Safe = FALSE;
+ *Shared = FALSE;
}
else if (Thread->OwnsProcessWorkingSetExclusive == 1)
{
/* Owner is safe and exclusive, release normally */
MiUnlockProcessWorkingSet(Process, Thread);
- Safe = TRUE;
- Shared = FALSE;
+ *Safe = TRUE;
+ *Shared = FALSE;
}
else
{
/* Owner is shared (implies safe), release normally */
ASSERT(FALSE);
- Safe = TRUE;
- Shared = TRUE;
+ *Safe = TRUE;
+ *Shared = TRUE;
}
}
Modified: trunk/reactos/ntoskrnl/mm/ARM3/virtual.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/ARM3/virtual.c…
==============================================================================
--- trunk/reactos/ntoskrnl/mm/ARM3/virtual.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/mm/ARM3/virtual.c [iso-8859-1] Fri Oct 11 18:12:16 2013
@@ -223,8 +223,8 @@
/* Release the working set lock */
MiUnlockProcessWorkingSetForFault(CurrentProcess,
CurrentThread,
- WsSafe,
- WsShared);
+ &WsSafe,
+ &WsShared);
/* Fault it in */
Status = MmAccessFault(FALSE, PageTableVirtualAddress, KernelMode, NULL);