diff --git a/reactos/ntoskrnl/io/iomgr/iofunc.c b/reactos/ntoskrnl/io/iomgr/iofunc.c index 5da953be654..07dc8ce4ef8 100644 --- a/reactos/ntoskrnl/io/iomgr/iofunc.c +++ b/reactos/ntoskrnl/io/iomgr/iofunc.c @@ -22,26 +22,29 @@ VOID NTAPI IopCleanupAfterException(IN PFILE_OBJECT FileObject, - IN PIRP Irp, + IN PIRP Irp OPTIONAL, IN PKEVENT Event OPTIONAL, IN PKEVENT LocalEvent OPTIONAL) { PAGED_CODE(); IOTRACE(IO_API_DEBUG, "IRP: %p. FO: %p \n", Irp, FileObject); - /* Check if we had a buffer */ - if (Irp->AssociatedIrp.SystemBuffer) + if (Irp) { - /* Free it */ - ExFreePool(Irp->AssociatedIrp.SystemBuffer); + /* Check if we had a buffer */ + if (Irp->AssociatedIrp.SystemBuffer) + { + /* Free it */ + ExFreePool(Irp->AssociatedIrp.SystemBuffer); + } + + /* Free the mdl */ + if (Irp->MdlAddress) IoFreeMdl(Irp->MdlAddress); + + /* Free the IRP */ + IoFreeIrp(Irp); } - /* Free the mdl */ - if (Irp->MdlAddress) IoFreeMdl(Irp->MdlAddress); - - /* Free the IRP */ - IoFreeIrp(Irp); - /* Check if we had a file lock */ if (FileObject->Flags & FO_SYNCHRONOUS_IO) {