advapi32: In ConvertStringSecurityDescriptorToSecurityDescriptor "AU" should be checked before "A" (with testcase).

oldstable
Mikolaj Zalewski 2007-09-27 11:55:11 -07:00 committed by Alexandre Julliard
parent 8188ce6fb1
commit 0590dc9b5c
2 changed files with 6 additions and 1 deletions

View File

@ -3070,9 +3070,9 @@ static DWORD ParseAclStringFlags(LPCWSTR* StringAcl)
*/
static const ACEFLAG AceType[] =
{
{ SDDL_ACCESS_ALLOWED, ACCESS_ALLOWED_ACE_TYPE },
{ SDDL_ALARM, SYSTEM_ALARM_ACE_TYPE },
{ SDDL_AUDIT, SYSTEM_AUDIT_ACE_TYPE },
{ SDDL_ACCESS_ALLOWED, ACCESS_ALLOWED_ACE_TYPE },
{ SDDL_ACCESS_DENIED, ACCESS_DENIED_ACE_TYPE },
/*
{ SDDL_OBJECT_ACCESS_ALLOWED, ACCESS_ALLOWED_OBJECT_ACE_TYPE },

View File

@ -1922,6 +1922,11 @@ static void test_ConvertStringSecurityDescriptor(void)
"D:(A;;0xFFFFFFFF;;;WD)", SDDL_REVISION_1, &pSD, NULL);
ok(ret, "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %d\n", GetLastError());
LocalFree(pSD);
SetLastError(0xdeadbeef);
ret = pConvertStringSecurityDescriptorToSecurityDescriptorA(
"S:(AU;;0xFFFFFFFF;;;WD)", SDDL_REVISION_1, &pSD, NULL);
ok(ret, "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %d\n", GetLastError());
LocalFree(pSD);
/* test ACE string access right error case */
SetLastError(0xdeadbeef);