[PATCH 2/5] ntdll: Pass the token to NtCreateUserProcess().

Zebediah Figura z.figura12 at gmail.com
Wed Sep 23 23:44:53 CDT 2020


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/ntdll/process.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
index b6b0f10b9b0..4cf83753a79 100644
--- a/dlls/ntdll/process.c
+++ b/dlls/ntdll/process.c
@@ -56,12 +56,12 @@ NTSTATUS WINAPI RtlCreateUserProcess( UNICODE_STRING *path, ULONG attributes,
                                       RTL_USER_PROCESS_PARAMETERS *params,
                                       SECURITY_DESCRIPTOR *process_descr,
                                       SECURITY_DESCRIPTOR *thread_descr,
-                                      HANDLE parent, BOOLEAN inherit, HANDLE debug, HANDLE exception,
+                                      HANDLE parent, BOOLEAN inherit, HANDLE debug, HANDLE token,
                                       RTL_USER_PROCESS_INFORMATION *info )
 {
     OBJECT_ATTRIBUTES process_attr, thread_attr;
     PS_CREATE_INFO create_info;
-    ULONG_PTR buffer[offsetof( PS_ATTRIBUTE_LIST, Attributes[5] ) / sizeof(ULONG_PTR)];
+    ULONG_PTR buffer[offsetof( PS_ATTRIBUTE_LIST, Attributes[6] ) / sizeof(ULONG_PTR)];
     PS_ATTRIBUTE_LIST *attr = (PS_ATTRIBUTE_LIST *)buffer;
     UINT pos = 0;
 
@@ -98,6 +98,14 @@ NTSTATUS WINAPI RtlCreateUserProcess( UNICODE_STRING *path, ULONG attributes,
         attr->Attributes[pos].ReturnLength = NULL;
         pos++;
     }
+    if (token)
+    {
+        attr->Attributes[pos].Attribute    = PS_ATTRIBUTE_TOKEN;
+        attr->Attributes[pos].Size         = sizeof(token);
+        attr->Attributes[pos].ValuePtr     = token;
+        attr->Attributes[pos].ReturnLength = NULL;
+        pos++;
+    }
     attr->TotalLength = offsetof( PS_ATTRIBUTE_LIST, Attributes[pos] );
 
     InitializeObjectAttributes( &process_attr, NULL, 0, NULL, process_descr );
-- 
2.28.0




More information about the wine-devel mailing list