mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +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:
parent
6c6813d7f7
commit
212b70142c
1 changed files with 14 additions and 11 deletions
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue