[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    [PATCH 1/3] kernelbase: Return FALSE in ContinueDebugEvent if status is unknown.
From:       Rémi Bernon <rbernon () codeweavers ! com>
Date:       2020-01-31 15:32:17
Message-ID: 20200131153219.702064-1-rbernon () codeweavers ! com
[Download RAW message or body]

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
---
 dlls/kernelbase/debug.c      | 7 +++++++
 dlls/ntdll/tests/exception.c | 1 +
 2 files changed, 8 insertions(+)

diff --git a/dlls/kernelbase/debug.c b/dlls/kernelbase/debug.c
index 53b95aa6dda..d99309377f0 100644
--- a/dlls/kernelbase/debug.c
+++ b/dlls/kernelbase/debug.c
@@ -70,6 +70,13 @@ BOOL WINAPI DECLSPEC_HOTPATCH CheckRemoteDebuggerPresent( HANDLE \
process, BOOL *  BOOL WINAPI DECLSPEC_HOTPATCH ContinueDebugEvent( DWORD pid, DWORD \
tid, DWORD status )  {
     BOOL ret;
+
+    if (status != DBG_EXCEPTION_NOT_HANDLED && status != DBG_CONTINUE)
+    {
+        FIXME("Unknown status %x\n", status);
+        return FALSE;
+    }
+
     SERVER_START_REQ( continue_debug_event )
     {
         req->pid    = pid;
diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c
index e8b481e703f..9cb9fc50d5d 100644
--- a/dlls/ntdll/tests/exception.c
+++ b/dlls/ntdll/tests/exception.c
@@ -999,6 +999,7 @@ static void test_debugger(void)
     {
         continuestatus = DBG_CONTINUE;
         ok(WaitForDebugEvent(&de, INFINITE), "reading debug event\n");
+        ok(!ContinueDebugEvent(de.dwProcessId, de.dwThreadId, 0xdeadbeef), \
"ContinueDebugEvent unexpectedly succeeded\n");  
         if (de.dwThreadId != pi.dwThreadId)
         {
-- 
2.25.0


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic