From 70fd5e3314167e1908a3122a8418f3585c98f688 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Tue, 12 Aug 2008 20:03:53 +0000 Subject: [PATCH] - Check for FCB->TdiDeviceName.Buffer before attempting to access it - Fix 2 more memory leaks svn path=/branches/aicom-network-fixes/; revision=35292 --- drivers/network/afd/afd/main.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/network/afd/afd/main.c b/drivers/network/afd/afd/main.c index f3c263af747..8d5b914042d 100644 --- a/drivers/network/afd/afd/main.c +++ b/drivers/network/afd/afd/main.c @@ -114,9 +114,6 @@ AfdCreateSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp, FCB->TdiDeviceName.MaximumLength = FCB->TdiDeviceName.Length; FCB->TdiDeviceName.Buffer = ExAllocatePool( NonPagedPool, FCB->TdiDeviceName.Length ); - RtlCopyMemory( FCB->TdiDeviceName.Buffer, - ConnectInfo->TransportName, - FCB->TdiDeviceName.Length ); if( !FCB->TdiDeviceName.Buffer ) { ExFreePool(FCB); @@ -126,6 +123,10 @@ AfdCreateSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp, return STATUS_NO_MEMORY; } + RtlCopyMemory( FCB->TdiDeviceName.Buffer, + ConnectInfo->TransportName, + FCB->TdiDeviceName.Length ); + AFD_DbgPrint(MID_TRACE,("Success: %s %wZ\n", EaInfo->EaName, &FCB->TdiDeviceName)); } else { @@ -192,6 +193,9 @@ VOID DestroySocket( PAFD_FCB FCB ) { InFlightRequest[i]->InFlightRequest->IoStatus.Status = STATUS_CANCELLED; InFlightRequest[i]->InFlightRequest->IoStatus.Information = 0; IoCancelIrp( InFlightRequest[i]->InFlightRequest ); + InFlightRequest[i]->InFlightRequest = NULL; + if( InFlightRequest[i]->ConnectionCallInfo ) ExFreePool( InFlightRequest[i]->ConnectionCallInfo ); + if( InFlightRequest[i]->ConnectionReturnInfo ) ExFreePool( InFlightRequest[i]->ConnectionReturnInfo ); } }