[NTOSKRNL]

Few fixes to IopGetBasicInformationFile() and NtSetInformationFile().
Spotted by Thomas

svn path=/trunk/; revision=63014
This commit is contained in:
Pierre Schweitzer 2014-04-27 11:14:16 +00:00
parent eaf1d4a782
commit f9db642103

View file

@ -710,7 +710,7 @@ IopGetBasicInformationFile(IN PFILE_OBJECT FileObject,
if (DeviceObject->DriverObject->FastIoDispatch != NULL && if (DeviceObject->DriverObject->FastIoDispatch != NULL &&
DeviceObject->DriverObject->FastIoDispatch->FastIoQueryBasicInfo != NULL && DeviceObject->DriverObject->FastIoDispatch->FastIoQueryBasicInfo != NULL &&
DeviceObject->DriverObject->FastIoDispatch->FastIoQueryBasicInfo(FileObject, DeviceObject->DriverObject->FastIoDispatch->FastIoQueryBasicInfo(FileObject,
(FileObject->Flags & FO_SYNCHRONOUS_IO), ((FileObject->Flags & FO_SYNCHRONOUS_IO) != 0),
BasicInfo, BasicInfo,
&IoStatusBlock, &IoStatusBlock,
DeviceObject)) DeviceObject))
@ -2446,7 +2446,7 @@ NtSetInformationFile(IN HANDLE FileHandle,
PFILE_COMPLETION_INFORMATION CompletionInfo = FileInformation; PFILE_COMPLETION_INFORMATION CompletionInfo = FileInformation;
PIO_COMPLETION_CONTEXT Context; PIO_COMPLETION_CONTEXT Context;
PFILE_RENAME_INFORMATION RenameInfo; PFILE_RENAME_INFORMATION RenameInfo;
HANDLE TargetHandle = INVALID_HANDLE_VALUE; HANDLE TargetHandle = NULL;
PAGED_CODE(); PAGED_CODE();
IOTRACE(IO_API_DEBUG, "FileHandle: %p\n", FileHandle); IOTRACE(IO_API_DEBUG, "FileHandle: %p\n", FileHandle);
@ -2744,6 +2744,11 @@ NtSetInformationFile(IN HANDLE FileHandle,
Status = IoCallDriver(DeviceObject, Irp); Status = IoCallDriver(DeviceObject, Irp);
} }
} }
else
{
Status = STATUS_INVALID_PARAMETER;
Irp->IoStatus.Status = Status;
}
} }
else else
{ {
@ -2836,7 +2841,7 @@ NtSetInformationFile(IN HANDLE FileHandle,
if (!LocalEvent) IopUnlockFileObject(FileObject); if (!LocalEvent) IopUnlockFileObject(FileObject);
} }
if (TargetHandle != INVALID_HANDLE_VALUE) if (TargetHandle != NULL)
{ {
ObCloseHandle(TargetHandle, KernelMode); ObCloseHandle(TargetHandle, KernelMode);
} }