From 66bbcfb1ccd624684712f05e8f5d510ff4d5cd1d Mon Sep 17 00:00:00 2001 From: Stefan Ginsberg Date: Sun, 21 Dec 2008 16:29:23 +0000 Subject: [PATCH] - Make advapi32 Winetest do a basic check instead of assuming that the routine won't fail svn path=/trunk/; revision=38232 --- rostests/winetests/advapi32/roshack.diff | 61 +++++++++++++++++------- rostests/winetests/advapi32/security.c | 7 ++- 2 files changed, 49 insertions(+), 19 deletions(-) diff --git a/rostests/winetests/advapi32/roshack.diff b/rostests/winetests/advapi32/roshack.diff index 09666481c9a..2da7e2b3d07 100644 --- a/rostests/winetests/advapi32/roshack.diff +++ b/rostests/winetests/advapi32/roshack.diff @@ -3,21 +3,46 @@ Index: security.c --- security.c (revision 37998) +++ security.c (working copy) @@ -2665,13 +2665,17 @@ - return; - } - -+ /* ReactOS Hack: ros' Security Descriptor string parsing sucks */ -+ skip("ROS-HACK: Skipping 'test_PrivateObjectSecurity' -- ros' SID string parsing sucks\n"); -+ return; -+ - ok(pConvertStringSecurityDescriptorToSecurityDescriptorA( - "O:SY" - "G:S-1-5-21-93476-23408-4576" - "D:(A;NP;GAGXGWGR;;;SU)(A;IOID;CCDC;;;SU)" - "(D;OICI;0xffffffff;;;S-1-5-21-93476-23408-4576)" - "S:(AU;OICINPIOIDSAFA;CCDCLCSWRPRC;;;SU)(AU;NPSA;0x12019f;;;SU)", -- SDDL_REVISION_1, &sec, &dwDescSize), "Creating descriptor failed\n"); -+ SDDL_REVISION_1, &sec, &dwDescSize), "Creating descriptor failed\n"); // FIXME: ConvertStringSecurityDescriptorToSecurityDescriptor fails and 'sec' isn't set - - test_SetSecurityDescriptorControl(sec); - + return; + } + ++ /* ReactOS Hack: ros' Security Descriptor string parsing sucks */ ++ skip("ROS-HACK: Skipping 'test_PrivateObjectSecurity' -- ros' SID string parsing sucks\n"); ++ return; ++ + ok(pConvertStringSecurityDescriptorToSecurityDescriptorA( + "O:SY" + "G:S-1-5-21-93476-23408-4576" + "D:(A;NP;GAGXGWGR;;;SU)(A;IOID;CCDC;;;SU)" + "(D;OICI;0xffffffff;;;S-1-5-21-93476-23408-4576)" + "S:(AU;OICINPIOIDSAFA;CCDCLCSWRPRC;;;SU)(AU;NPSA;0x12019f;;;SU)", +- SDDL_REVISION_1, &sec, &dwDescSize), "Creating descriptor failed\n"); ++ SDDL_REVISION_1, &sec, &dwDescSize), "Creating descriptor failed\n"); // FIXME: ConvertStringSecurityDescriptorToSecurityDescriptor fails and 'sec' isn't set + + test_SetSecurityDescriptorControl(sec); + +=================================================================== +--- security.c (revision 38229) ++++ security.c (working copy) +@@ -2840,6 +2840,7 @@ + + /* If we don't ask for the security descriptor, Windows will still give us + the other stuff, leaving us no way to free it. */ ++ dacl = NULL; + ret = pGetSecurityInfo(obj, SE_FILE_OBJECT, + OWNER_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION, + &owner, &group, &dacl, NULL, NULL); +@@ -2847,8 +2848,12 @@ + ok(owner != NULL, "GetSecurityInfo\n"); + ok(group != NULL, "GetSecurityInfo\n"); + ok(dacl != NULL, "GetSecurityInfo\n"); +- ok(IsValidAcl(dacl), "GetSecurityInfo\n"); + ++ if (dacl != NULL) ++ { ++ ok(IsValidAcl(dacl), "GetSecurityInfo\n"); ++ } ++ + CloseHandle(obj); + } + diff --git a/rostests/winetests/advapi32/security.c b/rostests/winetests/advapi32/security.c index 8dba1f58f84..9f1a617a57d 100644 --- a/rostests/winetests/advapi32/security.c +++ b/rostests/winetests/advapi32/security.c @@ -2840,6 +2840,7 @@ static void test_GetSecurityInfo(void) /* If we don't ask for the security descriptor, Windows will still give us the other stuff, leaving us no way to free it. */ + dacl = NULL; ret = pGetSecurityInfo(obj, SE_FILE_OBJECT, OWNER_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION, &owner, &group, &dacl, NULL, NULL); @@ -2847,7 +2848,11 @@ static void test_GetSecurityInfo(void) ok(owner != NULL, "GetSecurityInfo\n"); ok(group != NULL, "GetSecurityInfo\n"); ok(dacl != NULL, "GetSecurityInfo\n"); - ok(IsValidAcl(dacl), "GetSecurityInfo\n"); + + if (dacl != NULL) + { + ok(IsValidAcl(dacl), "GetSecurityInfo\n"); + } CloseHandle(obj); }