Author: pschweitzer Date: Wed Nov 23 18:21:03 2016 New Revision: 73362
URL: http://svn.reactos.org/svn/reactos?rev=73362&view=rev Log: [FASTFAT] In IRP_MJ_QUERY_INFORMATION/IRP_MJ_SET_INFORMATION, handle the case when we receive buggy FO without FCB. This fixes bugchecks when using FileSpy.
CORE-12448
Modified: trunk/reactos/drivers/filesystems/fastfat/finfo.c
Modified: trunk/reactos/drivers/filesystems/fastfat/finfo.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/fastfat... ============================================================================== --- trunk/reactos/drivers/filesystems/fastfat/finfo.c [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/fastfat/finfo.c [iso-8859-1] Wed Nov 23 18:21:03 2016 @@ -1444,6 +1444,12 @@ DPRINT("VfatQueryInformation is called for '%s'\n", FileInformationClass >= FileMaximumInformation - 1 ? "????" : FileInformationClassNames[FileInformationClass]);
+ if (FCB == NULL) + { + DPRINT1("IRP_MJ_QUERY_INFORMATION without FCB!\n"); + IrpContext->Irp->IoStatus.Information = 0; + return STATUS_INVALID_PARAMETER; + }
SystemBuffer = IrpContext->Irp->AssociatedIrp.SystemBuffer; BufferLength = IrpContext->Stack->Parameters.QueryFile.Length; @@ -1569,6 +1575,13 @@ DPRINT("FileInformationClass %d\n", FileInformationClass); DPRINT("SystemBuffer %p\n", SystemBuffer);
+ if (FCB == NULL) + { + DPRINT1("IRP_MJ_SET_INFORMATION without FCB!\n"); + IrpContext->Irp->IoStatus.Information = 0; + return STATUS_INVALID_PARAMETER; + } + /* Special: We should call MmCanFileBeTruncated here to determine if changing the file size would be allowed. If not, we bail with the right error. We must do this before acquiring the lock. */