[3/5] server: A destroyed process handle table means that the process is terminating.

Dmitry Timoshkov dmitry at baikal.ru
Wed May 8 00:34:12 CDT 2013


---
 dlls/kernel32/tests/loader.c | 2 --
 server/handle.c              | 2 +-
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
index e44b5df..31b91c6 100644
--- a/dlls/kernel32/tests/loader.c
+++ b/dlls/kernel32/tests/loader.c
@@ -2061,7 +2061,6 @@ if (0)
     ret = DuplicateHandle(GetCurrentProcess(), hmap, pi.hProcess, &hmap_dup,
                           0, FALSE, DUPLICATE_SAME_ACCESS);
     ok(!ret, "DuplicateHandle should fail\n");
-todo_wine
     ok(GetLastError() == ERROR_ACCESS_DENIED, "expected ERROR_ACCESS_DENIED, got %d\n", GetLastError());
 
     offset.u.LowPart = 0;
@@ -2070,7 +2069,6 @@ todo_wine
     size = 0;
     ret = pNtMapViewOfSection(hmap, pi.hProcess, &addr, 0, 0, &offset,
                               &size, 1 /* ViewShare */, 0, PAGE_READONLY);
-todo_wine
     ok(ret == STATUS_PROCESS_IS_TERMINATING, "expected STATUS_PROCESS_IS_TERMINATING, got %#x\n", ret);
 
     SetLastError(0xdeadbeef);
diff --git a/server/handle.c b/server/handle.c
index 0fd155a..1d8087b 100644
--- a/server/handle.c
+++ b/server/handle.c
@@ -244,7 +244,7 @@ obj_handle_t alloc_handle_no_access_check( struct process *process, void *ptr, u
     if (attr & OBJ_INHERIT) access |= RESERVED_INHERIT;
     if (!process->handles)
     {
-        set_error( STATUS_NO_MEMORY );
+        set_error( STATUS_PROCESS_IS_TERMINATING );
         return 0;
     }
     return alloc_entry( process->handles, obj, access );
-- 
1.8.2.2




More information about the wine-patches mailing list