[4/4] server: For querying thread information demand THREAD_QUERY_LIMITED_INFORMATION access.

Dmitry Timoshkov dmitry at baikal.ru
Thu Aug 20 23:14:23 CDT 2015


For bug 37915.
---
 dlls/kernel32/tests/thread.c | 7 ++++++-
 server/thread.c              | 2 +-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c
index 4cf8577..0d1f4a6 100644
--- a/dlls/kernel32/tests/thread.c
+++ b/dlls/kernel32/tests/thread.c
@@ -1750,14 +1750,19 @@ static void test_thread_info(void)
         switch (i)
         {
         case ThreadBasicInformation:
-        case ThreadTimes:
         case ThreadAmILastThread:
         case ThreadPriorityBoost:
+            ok(status == STATUS_SUCCESS, "for info %u expected STATUS_SUCCESS, got %08x (ret_len %u)\n", i, status, ret_len);
+            break;
+
+        case ThreadTimes:
 todo_wine
             ok(status == STATUS_SUCCESS, "for info %u expected STATUS_SUCCESS, got %08x (ret_len %u)\n", i, status, ret_len);
             break;
 
         case ThreadDescriptorTableEntry:
+        case ThreadAffinityMask:
+        case ThreadQuerySetWin32StartAddress:
 todo_wine
             ok(status == STATUS_ACCESS_DENIED, "for info %u expected STATUS_ACCESS_DENIED, got %08x (ret_len %u)\n", i, status, ret_len);
             break;
diff --git a/server/thread.c b/server/thread.c
index 9df2da6..6383000 100644
--- a/server/thread.c
+++ b/server/thread.c
@@ -1372,7 +1372,7 @@ DECL_HANDLER(get_thread_info)
     obj_handle_t handle = req->handle;
 
     if (!handle) thread = get_thread_from_id( req->tid_in );
-    else thread = get_thread_from_handle( req->handle, THREAD_QUERY_INFORMATION );
+    else thread = get_thread_from_handle( req->handle, THREAD_QUERY_LIMITED_INFORMATION );
 
     if (thread)
     {
-- 
2.4.8




More information about the wine-patches mailing list