mirror of
https://github.com/reactos/reactos.git
synced 2024-08-20 18:35:32 +00:00
Sync GetNamedSecurityInfoA with Wine.
RtlCreateUnicodeStringFromAsciiz is unwanted since the call to GetNamedSecurityInfoW checks for NULL and in this case sets ERROR_INVALID_PARAMETER. svn path=/trunk/; revision=41216
This commit is contained in:
parent
f3dc5e09e4
commit
70806391db
|
@ -1874,29 +1874,26 @@ GetNamedSecurityInfoA(LPSTR pObjectName,
|
|||
PACL *ppSacl,
|
||||
PSECURITY_DESCRIPTOR *ppSecurityDescriptor)
|
||||
{
|
||||
UNICODE_STRING ObjectName;
|
||||
NTSTATUS Status;
|
||||
DWORD Ret;
|
||||
DWORD len;
|
||||
LPWSTR wstr = NULL;
|
||||
DWORD r;
|
||||
|
||||
Status = RtlCreateUnicodeStringFromAsciiz(&ObjectName,
|
||||
pObjectName);
|
||||
if (!NT_SUCCESS(Status))
|
||||
TRACE("%s %d %d %p %p %p %p %p\n", pObjectName, ObjectType, SecurityInfo,
|
||||
ppsidOwner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor);
|
||||
|
||||
if( pObjectName )
|
||||
{
|
||||
return RtlNtStatusToDosError(Status);
|
||||
len = MultiByteToWideChar( CP_ACP, 0, pObjectName, -1, NULL, 0 );
|
||||
wstr = HeapAlloc( GetProcessHeap(), 0, len*sizeof(WCHAR));
|
||||
MultiByteToWideChar( CP_ACP, 0, pObjectName, -1, wstr, len );
|
||||
}
|
||||
|
||||
Ret = GetNamedSecurityInfoW(ObjectName.Buffer,
|
||||
ObjectType,
|
||||
SecurityInfo,
|
||||
ppsidOwner,
|
||||
ppsidGroup,
|
||||
ppDacl,
|
||||
ppSacl,
|
||||
ppSecurityDescriptor);
|
||||
r = GetNamedSecurityInfoW( wstr, ObjectType, SecurityInfo, ppsidOwner,
|
||||
ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor );
|
||||
|
||||
RtlFreeUnicodeString(&ObjectName);
|
||||
HeapFree( GetProcessHeap(), 0, wstr );
|
||||
|
||||
return Ret;
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue