Author: tkreuzer
Date: Sat Nov 28 15:48:57 2015
New Revision: 70179
URL: http://svn.reactos.org/svn/reactos?rev=70179&view=rev
Log:
[WIN32K]
Check for dc->dclevel.pSurface == NULL in IntGdiPolygon.
CORE-10377 #resolve
Modified:
trunk/reactos/win32ss/gdi/ntgdi/fillshap.c
Modified: trunk/reactos/win32ss/gdi/ntgdi/fillshap.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/fillshap…
==============================================================================
--- trunk/reactos/win32ss/gdi/ntgdi/fillshap.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/gdi/ntgdi/fillshap.c [iso-8859-1] Sat Nov 28 15:48:57 2015
@@ -81,8 +81,11 @@
pbrFill = dc->dclevel.pbrFill;
pbrLine = dc->dclevel.pbrLine;
psurf = dc->dclevel.pSurface;
- /* FIXME: psurf can be NULL!!!! don't assert but handle this case gracefully! */
- ASSERT(psurf);
+ if (psurf == NULL)
+ {
+ /* Memory DC without a bitmap selected, nothing to do. */
+ return TRUE;
+ }
/* Now fill the polygon with the current fill brush. */
if (!(pbrFill->flAttrs & BR_IS_NULL))
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 */