advapi32: Try again with different access mask if LsaOpenPolicy
fails with STATUS_ACCESS_DENIED.
Robert Reif
reif at earthlink.net
Mon Aug 14 06:17:55 CDT 2006
-------------- next part --------------
diff -p -u -r1.4 lsa.c
--- dlls/advapi32/tests/lsa.c 2 Aug 2006 20:22:31 -0000 1.4
+++ dlls/advapi32/tests/lsa.c 14 Aug 2006 11:13:44 -0000
@@ -62,9 +62,18 @@ static void test_lsa(void)
LSA_OBJECT_ATTRIBUTES object_attributes;
ZeroMemory(&object_attributes, sizeof(object_attributes));
+ object_attributes.Length = sizeof(object_attributes);
status = pLsaOpenPolicy( NULL, &object_attributes, POLICY_ALL_ACCESS, &handle);
- ok(status == STATUS_SUCCESS, "LsaOpenPolicy() returned 0x%08lx\n", status);
+ ok(status == STATUS_SUCCESS || status == STATUS_ACCESS_DENIED,
+ "LsaOpenPolicy(POLICY_ALL_ACCESS) returned 0x%08lx\n", status);
+
+ /* try a more restricted access mask if necessary */
+ if (status == STATUS_ACCESS_DENIED) {
+ trace("LsaOpenPolicy(POLICY_ALL_ACCESS) failed, trying POLICY_VIEW_LOCAL_INFORMATION\n");
+ status = pLsaOpenPolicy( NULL, &object_attributes, POLICY_VIEW_LOCAL_INFORMATION, &handle);
+ ok(status == STATUS_SUCCESS, "LsaOpenPolicy(POLICY_VIEW_LOCAL_INFORMATION) returned 0x%08lx\n", status);
+ }
if (status == STATUS_SUCCESS) {
PPOLICY_AUDIT_EVENTS_INFO audit_events_info;
diff -p -u -r1.37 security.c
--- dlls/advapi32/tests/security.c 14 Aug 2006 10:18:07 -0000 1.37
+++ dlls/advapi32/tests/security.c 14 Aug 2006 11:13:45 -0000
@@ -941,9 +941,18 @@ static void test_LookupAccountSid(void)
LSA_OBJECT_ATTRIBUTES object_attributes;
ZeroMemory(&object_attributes, sizeof(object_attributes));
+ object_attributes.Length = sizeof(object_attributes);
status = pLsaOpenPolicy( NULL, &object_attributes, POLICY_ALL_ACCESS, &handle);
- ok(status == STATUS_SUCCESS, "LsaOpenPolicy() returned 0x%08lx\n", status);
+ ok(status == STATUS_SUCCESS || status == STATUS_ACCESS_DENIED,
+ "LsaOpenPolicy(POLICY_ALL_ACCESS) returned 0x%08lx\n", status);
+
+ /* try a more restricted access mask if necessary */
+ if (status == STATUS_ACCESS_DENIED) {
+ trace("LsaOpenPolicy(POLICY_ALL_ACCESS) failed, trying POLICY_VIEW_LOCAL_INFORMATION\n");
+ status = pLsaOpenPolicy( NULL, &object_attributes, POLICY_VIEW_LOCAL_INFORMATION, &handle);
+ ok(status == STATUS_SUCCESS, "LsaOpenPolicy(POLICY_VIEW_LOCAL_INFORMATION) returned 0x%08lx\n", status);
+ }
if (status == STATUS_SUCCESS)
{
More information about the wine-patches
mailing list