From 2408676fa27b793378d8a84ee21ec14ba8908873 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Sun, 15 Oct 2023 16:13:40 -0500 Subject: [PATCH] user32/tests: Add basic tests for GetUserObjectSecurity(). --- dlls/user32/tests/winstation.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/dlls/user32/tests/winstation.c b/dlls/user32/tests/winstation.c index 23b86443af0..805bf57ec6f 100644 --- a/dlls/user32/tests/winstation.c +++ b/dlls/user32/tests/winstation.c @@ -1093,6 +1093,31 @@ static void test_invisible_winstation(char **argv) SetProcessWindowStation(old_winstation); } +static void test_get_security(void) +{ + SECURITY_INFORMATION info = DACL_SECURITY_INFORMATION; + HDESK desktop = GetThreadDesktop(GetCurrentThreadId()); + DWORD size, expect_size; + char buffer[500]; + BOOL ret; + + size = 0xdeadbeef; + SetLastError(0xdeadbeef); + ret = GetUserObjectSecurity( desktop, &info, NULL, 0, &size ); + ok( !ret, "got %#x\n", ret ); + ok( GetLastError() == ERROR_INSUFFICIENT_BUFFER, "got error %lu\n", GetLastError() ); + ok( size && size < sizeof(buffer), "got size %lu\n", size ); + expect_size = size; + + size = 0xdeadbeef; + SetLastError(0xdeadbeef); + ret = GetUserObjectSecurity( desktop, &info, buffer, sizeof(buffer), &size ); + ok( ret == TRUE, "got %#x\n", ret ); + ok( GetLastError() == 0xdeadbeef, "got error %lu\n", GetLastError() ); + ok( size == expect_size, "got size %lu\n", size ); + ok( IsValidSecurityDescriptor(buffer), "expected valid SD\n" ); +} + START_TEST(winstation) { char **argv; @@ -1126,4 +1151,5 @@ START_TEST(winstation) test_getuserobjectinformation(); test_foregroundwindow(); test_invisible_winstation(argv); + test_get_security(); } -- 2.11.4.GIT