[PATCH 5/7] ntoskrnl.exe: Cancel active timer before setting it.

Paul Gofman pgofman at codeweavers.com
Thu May 28 04:15:18 CDT 2020


Signed-off-by: Paul Gofman <pgofman at codeweavers.com>
---
 dlls/ntoskrnl.exe/sync.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/dlls/ntoskrnl.exe/sync.c b/dlls/ntoskrnl.exe/sync.c
index 912dc046bac..36fa12fe000 100644
--- a/dlls/ntoskrnl.exe/sync.c
+++ b/dlls/ntoskrnl.exe/sync.c
@@ -443,7 +443,9 @@ BOOLEAN WINAPI KeSetTimerEx( KTIMER *timer, LARGE_INTEGER duetime, LONG period,
 
     EnterCriticalSection( &sync_cs );
 
-    ret = timer->Header.Inserted;
+    if ((ret = timer->Header.Inserted))
+        KeCancelTimer(timer);
+
     timer->Header.Inserted = TRUE;
 
     if (!timer->TimerListEntry.Blink)
-- 
2.26.2




More information about the wine-devel mailing list