mirror of
https://github.com/reactos/reactos.git
synced 2024-08-05 11:00:55 +00:00
bug 1346 : patch from w3seek : Support SE_FILE_OBJECT in GetNamedSecurityInfo
svn path=/trunk/; revision=21670
This commit is contained in:
parent
f913f2a8f4
commit
836aa765da
|
@ -437,6 +437,7 @@ AccpOpenNamedObject(LPWSTR pObjectName,
|
|||
BOOL Write)
|
||||
{
|
||||
LPWSTR lpPath;
|
||||
NTSTATUS Status;
|
||||
ACCESS_MASK DesiredAccess = (ACCESS_MASK)0;
|
||||
DWORD Ret = ERROR_SUCCESS;
|
||||
|
||||
|
@ -496,6 +497,45 @@ AccpOpenNamedObject(LPWSTR pObjectName,
|
|||
/* open a handle to the path depending on the object type */
|
||||
switch (ObjectType)
|
||||
{
|
||||
case SE_FILE_OBJECT:
|
||||
{
|
||||
IO_STATUS_BLOCK IoStatusBlock;
|
||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||
UNICODE_STRING FileName;
|
||||
|
||||
if (!RtlDosPathNameToNtPathName_U(pObjectName,
|
||||
&FileName,
|
||||
NULL,
|
||||
NULL))
|
||||
{
|
||||
Ret = ERROR_INVALID_NAME;
|
||||
goto Cleanup;
|
||||
}
|
||||
|
||||
InitializeObjectAttributes(&ObjectAttributes,
|
||||
&FileName,
|
||||
OBJ_CASE_INSENSITIVE,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
Status = NtOpenFile(Handle,
|
||||
DesiredAccess,
|
||||
&ObjectAttributes,
|
||||
&IoStatusBlock,
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
||||
FILE_SYNCHRONOUS_IO_NONALERT);
|
||||
|
||||
RtlFreeHeap(RtlGetProcessHeap(),
|
||||
0,
|
||||
FileName.Buffer);
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
Ret = RtlNtStatusToDosError(Status);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case SE_REGISTRY_KEY:
|
||||
{
|
||||
static const struct
|
||||
|
@ -679,6 +719,9 @@ AccpCloseObjectHandle(SE_OBJECT_TYPE ObjectType,
|
|||
break;
|
||||
|
||||
case SE_FILE_OBJECT:
|
||||
NtClose(Handle);
|
||||
break;
|
||||
|
||||
case SE_KERNEL_OBJECT:
|
||||
case SE_WINDOW_OBJECT:
|
||||
CloseHandle(Handle);
|
||||
|
|
Loading…
Reference in a new issue