Sebastian Lackner : advapi32/tests: Add basic tests for BuildSecurityDescriptor.

Alexandre Julliard julliard at winehq.org
Tue Jun 26 04:44:29 CDT 2018


Module: wine
Branch: stable
Commit: 3cfdb637371e4acf6024cbe5ef14d3972d4cab8d
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=3cfdb637371e4acf6024cbe5ef14d3972d4cab8d

Author: Sebastian Lackner <sebastian at fds-team.de>
Date:   Wed Apr 18 00:25:28 2018 +0000

advapi32/tests: Add basic tests for BuildSecurityDescriptor.

Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit 731f22835e1cac8dde99931ec87958629b235c0e)
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>

---

 dlls/advapi32/tests/security.c | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index 57889dc..727ca6b 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -7314,6 +7314,42 @@ static void test_GetExplicitEntriesFromAclW(void)
     HeapFree(GetProcessHeap(), 0, old_acl);
 }
 
+static void test_BuildSecurityDescriptorW(void)
+{
+    SECURITY_DESCRIPTOR old_sd, *new_sd, *rel_sd;
+    ULONG new_sd_size;
+    DWORD buf_size;
+    char buf[1024];
+    BOOL success;
+    DWORD ret;
+
+    InitializeSecurityDescriptor(&old_sd, SECURITY_DESCRIPTOR_REVISION);
+
+    buf_size = sizeof(buf);
+    rel_sd = (SECURITY_DESCRIPTOR *)buf;
+    success = MakeSelfRelativeSD(&old_sd, rel_sd, &buf_size);
+    ok(success, "MakeSelfRelativeSD failed with %u\n", GetLastError());
+
+    new_sd = NULL;
+    new_sd_size = 0;
+    ret = BuildSecurityDescriptorW(NULL, NULL, 0, NULL, 0, NULL, NULL, &new_sd_size, (void **)&new_sd);
+    ok(ret == ERROR_SUCCESS, "BuildSecurityDescriptor failed with %u\n", ret);
+    ok(new_sd != NULL, "expected new_sd != NULL\n");
+    LocalFree(new_sd);
+
+    new_sd = (void *)0xdeadbeef;
+    ret = BuildSecurityDescriptorW(NULL, NULL, 0, NULL, 0, NULL, &old_sd, &new_sd_size, (void **)&new_sd);
+    ok(ret == ERROR_INVALID_SECURITY_DESCR, "expected ERROR_INVALID_SECURITY_DESCR, got %u\n", ret);
+    ok(new_sd == (void *)0xdeadbeef, "expected new_sd == 0xdeadbeef, got %p\n", new_sd);
+
+    new_sd = NULL;
+    new_sd_size = 0;
+    ret = BuildSecurityDescriptorW(NULL, NULL, 0, NULL, 0, NULL, rel_sd, &new_sd_size, (void **)&new_sd);
+    ok(ret == ERROR_SUCCESS, "BuildSecurityDescriptor failed with %u\n", ret);
+    ok(new_sd != NULL, "expected new_sd != NULL\n");
+    LocalFree(new_sd);
+}
+
 START_TEST(security)
 {
     init();
@@ -7368,6 +7404,7 @@ START_TEST(security)
     test_maximum_allowed();
     test_token_label();
     test_GetExplicitEntriesFromAclW();
+    test_BuildSecurityDescriptorW();
 
     /* Must be the last test, modifies process token */
     test_token_security_descriptor();




More information about the wine-cvs mailing list