Dmitry Timoshkov : server: Add PROCESS_QUERY_LIMITED_INFORMATION to GENERIC_EXECUTE access mapping and appropriately change PROCESS_ALL_ACCESS.

Alexandre Julliard julliard at winehq.org
Thu Feb 6 13:25:32 CST 2014


Module: wine
Branch: master
Commit: a0b08adbe40aaaaed0868af00f094123f7ab8b5d
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a0b08adbe40aaaaed0868af00f094123f7ab8b5d

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Thu Feb  6 20:48:13 2014 +0900

server: Add PROCESS_QUERY_LIMITED_INFORMATION to GENERIC_EXECUTE access mapping and appropriately change PROCESS_ALL_ACCESS.

---

 dlls/advapi32/tests/security.c |    1 -
 include/winnt.h                |    2 +-
 server/process.c               |    2 +-
 3 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index 6225529..f3cc85d 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -5061,7 +5061,6 @@ static void test_process_access(void)
                "%d: expected %#x, got %#x\n", i, map[i].mapped, access);
             break;
         case GENERIC_EXECUTE:
-todo_wine
             ok(access == map[i].mapped || access == (map[i].mapped | PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_TERMINATE) /* Vista+ */,
                "%d: expected %#x, got %#x\n", i, map[i].mapped, access);
             break;
diff --git a/include/winnt.h b/include/winnt.h
index dd4ef63..ded7600 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -4542,7 +4542,7 @@ typedef enum tagSID_NAME_USE {
 #define PROCESS_QUERY_INFORMATION  0x0400
 #define PROCESS_SUSPEND_RESUME     0x0800
 #define PROCESS_QUERY_LIMITED_INFORMATION 0x1000
-#define PROCESS_ALL_ACCESS         (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xfff)
+#define PROCESS_ALL_ACCESS         (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xffff)
 
 #define THREAD_TERMINATE           0x0001
 #define THREAD_SUSPEND_RESUME      0x0002
diff --git a/server/process.c b/server/process.c
index 41b5eca..ceaef64 100644
--- a/server/process.c
+++ b/server/process.c
@@ -451,7 +451,7 @@ static unsigned int process_map_access( struct object *obj, unsigned int access
     if (access & GENERIC_READ)    access |= STANDARD_RIGHTS_READ | PROCESS_QUERY_INFORMATION | PROCESS_VM_READ;
     if (access & GENERIC_WRITE)   access |= STANDARD_RIGHTS_WRITE | PROCESS_SET_QUOTA | PROCESS_SET_INFORMATION | PROCESS_SUSPEND_RESUME |
                                             PROCESS_VM_WRITE | PROCESS_DUP_HANDLE | PROCESS_CREATE_PROCESS | PROCESS_CREATE_THREAD | PROCESS_VM_OPERATION;
-    if (access & GENERIC_EXECUTE) access |= STANDARD_RIGHTS_EXECUTE | SYNCHRONIZE | PROCESS_TERMINATE;
+    if (access & GENERIC_EXECUTE) access |= STANDARD_RIGHTS_EXECUTE | SYNCHRONIZE | PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_TERMINATE;
     if (access & GENERIC_ALL)     access |= PROCESS_ALL_ACCESS;
     return access & ~(GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE | GENERIC_ALL);
 }




More information about the wine-cvs mailing list