Erich Hoover : advapi32: Support service objects in SetNamedSecurityInfo.
Alexandre Julliard
julliard at winehq.org
Thu Jan 31 12:11:42 CST 2013
Module: wine
Branch: master
Commit: 44593ba61294dd1d3c9874785c692ba35615ecb2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=44593ba61294dd1d3c9874785c692ba35615ecb2
Author: Erich Hoover <ehoover at mines.edu>
Date: Wed Jan 30 12:59:15 2013 -0700
advapi32: Support service objects in SetNamedSecurityInfo.
---
dlls/advapi32/security.c | 30 ++++++++++++++++++++----------
1 files changed, 20 insertions(+), 10 deletions(-)
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index f9727d7..474c522 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -4005,11 +4005,6 @@ DWORD WINAPI SetNamedSecurityInfoW(LPWSTR pObjectName,
TRACE( "%s %d %d %p %p %p %p\n", debugstr_w(pObjectName), ObjectType,
SecurityInfo, psidOwner, psidGroup, pDacl, pSacl);
- if (ObjectType != SE_FILE_OBJECT)
- {
- FIXME( "Object type %d is not currently supported.\n", ObjectType );
- return ERROR_SUCCESS;
- }
if (!pObjectName) return ERROR_INVALID_PARAMETER;
@@ -4020,11 +4015,26 @@ DWORD WINAPI SetNamedSecurityInfoW(LPWSTR pObjectName,
if (SecurityInfo & SACL_SECURITY_INFORMATION)
access |= ACCESS_SYSTEM_SECURITY;
- err = get_security_file( pObjectName, access, &handle );
- if (err != ERROR_SUCCESS)
- return err;
- err = SetSecurityInfo( handle, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl );
- CloseHandle( handle );
+ switch (ObjectType)
+ {
+ case SE_SERVICE:
+ if (!(err = get_security_service( pObjectName, access, &handle )))
+ {
+ err = SetSecurityInfo( handle, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl );
+ CloseServiceHandle( handle );
+ }
+ break;
+ case SE_FILE_OBJECT:
+ if (!(err = get_security_file( pObjectName, access, &handle )))
+ {
+ err = SetSecurityInfo( handle, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl );
+ CloseHandle( handle );
+ }
+ break;
+ default:
+ FIXME( "Object type %d is not currently supported.\n", ObjectType );
+ return ERROR_SUCCESS;
+ }
return err;
}
More information about the wine-cvs
mailing list