You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Rebase against 6e3f39a4c59fd529c7b532dcde1bb8c37c467b35.
This commit is contained in:
@@ -1,95 +0,0 @@
|
||||
From f0290aad953e988b1a15e214ecfc57f21dc136af Mon Sep 17 00:00:00 2001
|
||||
From: Qian Hong <qhong@codeweavers.com>
|
||||
Date: Tue, 28 Apr 2015 23:28:50 +0800
|
||||
Subject: advapi32/tests: Test prefix and use of TokenPrimaryGroup Sid.
|
||||
|
||||
---
|
||||
dlls/advapi32/tests/security.c | 35 ++++++++++++++++++++++++++++++-----
|
||||
1 file changed, 30 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
|
||||
index f3fc682..6a716d6 100644
|
||||
--- a/dlls/advapi32/tests/security.c
|
||||
+++ b/dlls/advapi32/tests/security.c
|
||||
@@ -2514,19 +2514,21 @@ static void test_granted_access(HANDLE handle, ACCESS_MASK access,
|
||||
static void test_process_security(void)
|
||||
{
|
||||
BOOL res;
|
||||
+ PTOKEN_USER user;
|
||||
PTOKEN_OWNER owner;
|
||||
PTOKEN_PRIMARY_GROUP group;
|
||||
- PSID AdminSid = NULL, UsersSid = NULL;
|
||||
+ PSID AdminSid = NULL, UsersSid = NULL, UserSid = NULL;
|
||||
PACL Acl = NULL, ThreadAcl = NULL;
|
||||
SECURITY_DESCRIPTOR *SecurityDescriptor = NULL, *ThreadSecurityDescriptor = NULL;
|
||||
- char buffer[MAX_PATH];
|
||||
+ char buffer[MAX_PATH], account[MAX_PATH], domain[MAX_PATH];
|
||||
PROCESS_INFORMATION info;
|
||||
STARTUPINFOA startup;
|
||||
SECURITY_ATTRIBUTES psa, tsa;
|
||||
HANDLE token, event;
|
||||
- DWORD size;
|
||||
+ DWORD size, acc_size, dom_size, ret;
|
||||
SID_IDENTIFIER_AUTHORITY SIDAuthWorld = { SECURITY_WORLD_SID_AUTHORITY };
|
||||
PSID EveryoneSid = NULL;
|
||||
+ SID_NAME_USE use;
|
||||
|
||||
Acl = HeapAlloc(GetProcessHeap(), 0, 256);
|
||||
res = InitializeAcl(Acl, 256, ACL_REVISION);
|
||||
@@ -2558,7 +2560,8 @@ static void test_process_security(void)
|
||||
owner = HeapAlloc(GetProcessHeap(), 0, size);
|
||||
res = GetTokenInformation( token, TokenOwner, owner, size, &size );
|
||||
ok(res, "GetTokenInformation failed with error %d\n", GetLastError());
|
||||
- AdminSid = ((TOKEN_OWNER*)owner)->Owner;
|
||||
+ AdminSid = owner->Owner;
|
||||
+ test_sid_str(AdminSid);
|
||||
|
||||
res = GetTokenInformation( token, TokenPrimaryGroup, NULL, 0, &size );
|
||||
ok(!res, "Expected failure, got %d\n", res);
|
||||
@@ -2568,13 +2571,34 @@ static void test_process_security(void)
|
||||
group = HeapAlloc(GetProcessHeap(), 0, size);
|
||||
res = GetTokenInformation( token, TokenPrimaryGroup, group, size, &size );
|
||||
ok(res, "GetTokenInformation failed with error %d\n", GetLastError());
|
||||
- UsersSid = ((TOKEN_PRIMARY_GROUP*)group)->PrimaryGroup;
|
||||
+ UsersSid = group->PrimaryGroup;
|
||||
+ test_sid_str(UsersSid);
|
||||
+
|
||||
+ acc_size = sizeof(account);
|
||||
+ dom_size = sizeof(domain);
|
||||
+ ret = LookupAccountSidA( NULL, UsersSid, account, &acc_size, domain, &dom_size, &use );
|
||||
+ ok(ret, "LookupAccountSid failed with %d\n", ret);
|
||||
+ todo_wine ok(use == SidTypeGroup, "expect SidTypeGroup, got %d\n", use);
|
||||
+ todo_wine ok(!strcmp(account, "None"), "expect None, got %s\n", account);
|
||||
+
|
||||
+ res = GetTokenInformation( token, TokenUser, NULL, 0, &size );
|
||||
+ ok(!res, "Expected failure, got %d\n", res);
|
||||
+ ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER,
|
||||
+ "Expected ERROR_INSUFFICIENT_BUFFER, got %d\n", GetLastError());
|
||||
+
|
||||
+ user = HeapAlloc(GetProcessHeap(), 0, size);
|
||||
+ res = GetTokenInformation( token, TokenUser, user, size, &size );
|
||||
+ ok(res, "GetTokenInformation failed with error %d\n", GetLastError());
|
||||
+ UserSid = user->User.Sid;
|
||||
+ test_sid_str(UserSid);
|
||||
+ todo_wine ok(EqualPrefixSid(UsersSid, UserSid), "TokenPrimaryGroup Sid and TokenUser Sid don't match.\n");
|
||||
|
||||
CloseHandle( token );
|
||||
if (!res)
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, group);
|
||||
HeapFree(GetProcessHeap(), 0, owner);
|
||||
+ HeapFree(GetProcessHeap(), 0, user);
|
||||
HeapFree(GetProcessHeap(), 0, Acl);
|
||||
return;
|
||||
}
|
||||
@@ -2681,6 +2705,7 @@ static void test_process_security(void)
|
||||
CloseHandle( event );
|
||||
HeapFree(GetProcessHeap(), 0, group);
|
||||
HeapFree(GetProcessHeap(), 0, owner);
|
||||
+ HeapFree(GetProcessHeap(), 0, user);
|
||||
HeapFree(GetProcessHeap(), 0, Acl);
|
||||
HeapFree(GetProcessHeap(), 0, SecurityDescriptor);
|
||||
HeapFree(GetProcessHeap(), 0, ThreadAcl);
|
||||
--
|
||||
2.3.5
|
||||
|
Reference in New Issue
Block a user