From fa9f7f4b4112d3d830b6e833ed66305bcbf2a1ea Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Tue, 24 Nov 2015 22:04:39 +0000 Subject: [PATCH] [WIN32K] "Gracyfully" (i.e. ignore, like Windows does) handle hsem == NULL in EngAcquireSemaphore Should fix crash of QXL Virtual GPU driver installer CORE-9779 #comment Please retest. svn path=/trunk/; revision=70103 --- reactos/win32ss/gdi/eng/semaphor.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/reactos/win32ss/gdi/eng/semaphor.c b/reactos/win32ss/gdi/eng/semaphor.c index 020718630ef..48ee574f24a 100644 --- a/reactos/win32ss/gdi/eng/semaphor.c +++ b/reactos/win32ss/gdi/eng/semaphor.c @@ -42,7 +42,14 @@ EngAcquireSemaphore( { // www.osr.com/ddk/graphics/gdifncs_14br.htm PTHREADINFO W32Thread; - ASSERT(hsem); + + /* On Windows a NULL hsem is ignored */ + if (hsem == NULL) + { + DPRINT1("EngAcquireSemaphore called with hsem == NULL!\n"); + return; + } + ExEnterCriticalRegionAndAcquireResourceExclusive((PERESOURCE)hsem); W32Thread = PsGetThreadWin32Thread(PsGetCurrentThread()); if (W32Thread) W32Thread->dwEngAcquireCount++; -- 2.17.1