[PATCH 1/3] kernelbase: Return FALSE in ContinueDebugEvent if status is unknown.

Rémi Bernon rbernon at codeweavers.com
Fri Jan 31 09:32:17 CST 2020


Signed-off-by: Rémi Bernon <rbernon at 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




More information about the wine-devel mailing list