Author: tfaber
Date: Sat Nov 28 12:45:16 2015
New Revision: 70177
URL:
http://svn.reactos.org/svn/reactos?rev=70177&view=rev
Log:
[NTOS:PS]
- Properly acquire process rundown
- Reference job object when assigning a process to it
- Don't assert when creating a child process whose parent is in a job
Fixes crashes in kernel32_winetest:process
Modified:
trunk/reactos/ntoskrnl/ps/job.c
trunk/reactos/ntoskrnl/ps/process.c
Modified: trunk/reactos/ntoskrnl/ps/job.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ps/job.c?rev=7017…
==============================================================================
--- trunk/reactos/ntoskrnl/ps/job.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ps/job.c [iso-8859-1] Sat Nov 28 12:45:16 2015
@@ -166,8 +166,7 @@
/* lock the process so we can safely assign the process. Note that in
the
meanwhile another thread could have assigned this process to a job! */
- ExAcquireRundownProtection(&Process->RundownProtect);
- if(NT_SUCCESS(Status))
+ if(ExAcquireRundownProtection(&Process->RundownProtect))
{
if(Process->Job == NULL && PsGetProcessSessionId(Process)
== Job->SessionId)
{
@@ -176,6 +175,7 @@
the job object might require it to wait, which is a bad thing
while holding the process lock! */
Process->Job = Job;
+ ObReferenceObject(Job);
}
else
{
Modified: trunk/reactos/ntoskrnl/ps/process.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ps/process.c?rev=…
==============================================================================
--- trunk/reactos/ntoskrnl/ps/process.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ps/process.c [iso-8859-1] Sat Nov 28 12:45:16 2015
@@ -714,7 +714,6 @@
{
/* FIXME: We need to insert this process */
DPRINT1("Jobs not yet supported\n");
- ASSERT(FALSE);
}
/* Create PEB only for User-Mode Processes */