From: Thomas Faber Date: Mon, 19 Sep 2016 08:15:24 +0000 (+0000) Subject: [AFD] X-Git-Tag: ReactOS-0.4.3~317 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=8970909ad91a9e7d028a20b2427377b5a3455a28 [AFD] - Fix MDL leak in failure case of AfdGetSockName. Patch by Volodymyr Shcherbyna. CID 1322161. CORE-11096 #resolve svn path=/trunk/; revision=72738 --- diff --git a/reactos/drivers/network/afd/afd/info.c b/reactos/drivers/network/afd/afd/info.c index 2ceff463561..162f6606d20 100644 --- a/reactos/drivers/network/afd/afd/info.c +++ b/reactos/drivers/network/afd/afd/info.c @@ -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;