[AFD]
authorThomas Faber <thomas.faber@reactos.org>
Mon, 19 Sep 2016 08:15:24 +0000 (08:15 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Mon, 19 Sep 2016 08:15:24 +0000 (08:15 +0000)
- Fix MDL leak in failure case of AfdGetSockName. Patch by Volodymyr Shcherbyna. CID 1322161.
CORE-11096 #resolve

svn path=/trunk/; revision=72738

reactos/drivers/network/afd/afd/info.c

index 2ceff46..162f660 100644 (file)
@@ -198,6 +198,7 @@ AfdGetSockName( PDEVICE_OBJECT DeviceObject, PIRP Irp,
     PMDL Mdl = NULL;
 
     UNREFERENCED_PARAMETER(DeviceObject);
+    ASSERT(Irp->MdlAddress == NULL);
 
     if( !SocketAcquireStateLock( FCB ) ) return LostSocket( Irp );
 
@@ -226,6 +227,11 @@ AfdGetSockName( PDEVICE_OBJECT DeviceObject, PIRP Irp,
                                               TDI_QUERY_ADDRESS_INFO,
                                               Mdl );
         }
+
+        /* Check if MmProbeAndLockPages or TdiQueryInformation failed and
+         * clean up Mdl */
+        if (!NT_SUCCESS(Status) && Irp->MdlAddress != Mdl)
+            IoFreeMdl(Mdl);
     } else
         Status = STATUS_INSUFFICIENT_RESOURCES;