[PATCH 1/2] advapi32/tests: Add some tests for querying the security of pseudo-handles.
Zebediah Figura
z.figura12 at gmail.com
Sat Jan 23 17:39:56 CST 2021
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/advapi32/tests/security.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index 6d2d5f56f1b..0c1c498bbce 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -7871,6 +7871,34 @@ static void test_create_process_token_child(void)
}
}
+static void test_pseudo_handle_security(void)
+{
+ char buffer[200];
+ PSECURITY_DESCRIPTOR sd = buffer, *sd_ptr;
+ DWORD size;
+ BOOL ret;
+
+ ret = GetKernelObjectSecurity(GetCurrentProcess(), OWNER_SECURITY_INFORMATION, &sd, sizeof(buffer), &size);
+ ok(ret, "got error %u\n", GetLastError());
+
+ ret = GetKernelObjectSecurity(GetCurrentThread(), OWNER_SECURITY_INFORMATION, &sd, sizeof(buffer), &size);
+ ok(ret, "got error %u\n", GetLastError());
+
+ SetLastError(0xdeadbeef);
+ ret = GetKernelObjectSecurity(HKEY_CLASSES_ROOT, OWNER_SECURITY_INFORMATION, &sd, sizeof(buffer), &size);
+ ok(!ret, "expected failure\n");
+ ok(GetLastError() == ERROR_INVALID_HANDLE, "got error %u\n", GetLastError());
+
+ todo_wine ret = GetSecurityInfo(HKEY_CLASSES_ROOT, SE_REGISTRY_KEY,
+ DACL_SECURITY_INFORMATION, NULL, NULL, NULL, NULL, &sd_ptr);
+ ok(!ret, "got error %u\n", ret);
+ LocalFree(sd_ptr);
+
+ ret = GetSecurityInfo(HKEY_CLASSES_ROOT, SE_KERNEL_OBJECT,
+ DACL_SECURITY_INFORMATION, NULL, NULL, NULL, NULL, &sd_ptr);
+ ok(ret == ERROR_INVALID_HANDLE, "got error %u\n", ret);
+}
+
START_TEST(security)
{
init();
@@ -7935,6 +7963,7 @@ START_TEST(security)
test_BuildSecurityDescriptorW();
test_duplicate_handle_access();
test_create_process_token();
+ test_pseudo_handle_security();
/* Must be the last test, modifies process token */
test_token_security_descriptor();
--
2.29.2
More information about the wine-devel
mailing list