- Fix MDL leak in failure case of AfdGetSockName. Patch by Volodymyr Shcherbyna. CID 1322161.
CORE-11096 #resolve

svn path=/trunk/; revision=72738
This commit is contained in:
Thomas Faber 2016-09-19 08:15:24 +00:00
parent 9481be0824
commit 8970909ad9

View 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;