Module: wine Branch: master Commit: f9f3b21fb3a8b8266fa25ae7acb6790195b78f83 URL: http://source.winehq.org/git/wine.git/?a=commit;h=f9f3b21fb3a8b8266fa25ae7ac...
Author: Erich E. Hoover erich.e.hoover@gmail.com Date: Fri Jul 4 10:10:45 2014 -0600
advapi32: Implement RegSetKeySecurity on top of NtSetSecurityObject.
---
dlls/advapi32/registry.c | 4 ++-- dlls/advapi32/tests/registry.c | 30 +++++++++++++++--------------- 2 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/dlls/advapi32/registry.c b/dlls/advapi32/registry.c index d568ae0..bb68b3d 100644 --- a/dlls/advapi32/registry.c +++ b/dlls/advapi32/registry.c @@ -2488,9 +2488,9 @@ LSTATUS WINAPI RegSetKeySecurity( HKEY hkey, SECURITY_INFORMATION SecurityInfo, if (!pSecurityDesc) return ERROR_INVALID_PARAMETER;
- FIXME(":(%p,%d,%p): stub\n",hkey,SecurityInfo,pSecurityDesc); + if (!(hkey = get_special_root_hkey( hkey, 0 ))) return ERROR_INVALID_HANDLE;
- return ERROR_SUCCESS; + return RtlNtStatusToDosError( NtSetSecurityObject( hkey, SecurityInfo, pSecurityDesc ) ); }
diff --git a/dlls/advapi32/tests/registry.c b/dlls/advapi32/tests/registry.c index 0626aff..85f50ce 100644 --- a/dlls/advapi32/tests/registry.c +++ b/dlls/advapi32/tests/registry.c @@ -1103,14 +1103,15 @@ static void test_reg_open_key(void) } else { - /* The "sanctioned" methods of setting a registry ACL aren't implemented in Wine. */ - bRet = SetKernelObjectSecurity(hkRoot64, DACL_SECURITY_INFORMATION, sd); - ok(bRet == TRUE, - "Expected SetKernelObjectSecurity to return TRUE, got %d, last error %u\n", bRet, GetLastError()); + LONG error;
- bRet = SetKernelObjectSecurity(hkRoot32, DACL_SECURITY_INFORMATION, sd); - ok(bRet == TRUE, - "Expected SetKernelObjectSecurity to return TRUE, got %d, last error %u\n", bRet, GetLastError()); + error = RegSetKeySecurity(hkRoot64, DACL_SECURITY_INFORMATION, sd); + ok(error == ERROR_SUCCESS, + "Expected RegSetKeySecurity to return success, got error %u\n", error); + + bRet = RegSetKeySecurity(hkRoot32, DACL_SECURITY_INFORMATION, sd); + ok(error == ERROR_SUCCESS, + "Expected RegSetKeySecurity to return success, got error %u\n", error);
hkResult = NULL; ret = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\Wine", 0, KEY_WOW64_64KEY | KEY_READ, &hkResult); @@ -1264,14 +1265,13 @@ static void test_reg_create_key(void) } else { - /* The "sanctioned" methods of setting a registry ACL aren't implemented in Wine. */ - bRet = SetKernelObjectSecurity(hkRoot64, DACL_SECURITY_INFORMATION, sd); - ok(bRet == TRUE, - "Expected SetKernelObjectSecurity to return TRUE, got %d, last error %u\n", bRet, GetLastError()); - - bRet = SetKernelObjectSecurity(hkRoot32, DACL_SECURITY_INFORMATION, sd); - ok(bRet == TRUE, - "Expected SetKernelObjectSecurity to return TRUE, got %d, last error %u\n", bRet, GetLastError()); + ret = RegSetKeySecurity(hkRoot64, DACL_SECURITY_INFORMATION, sd); + ok(ret == ERROR_SUCCESS, + "Expected RegSetKeySecurity to return success, got error %u\n", ret); + + ret = RegSetKeySecurity(hkRoot32, DACL_SECURITY_INFORMATION, sd); + ok(ret == ERROR_SUCCESS, + "Expected RegSetKeySecurity to return success, got error %u\n", ret);
hkey1 = NULL; ret = RegCreateKeyExA(HKEY_LOCAL_MACHINE, "Software\Wine", 0, NULL, 0,