mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-03 04:13:31 +00:00
[NTOS:IO]
- Fix potential null-pointer dereferencing (we call IopCleanupAfterException in IopDeviceFsIoControl with Irp == NULL) svn path=/trunk/; revision=72548
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user