From f828c2431c8b964056ef45bc7c2af8f7cb2c0d3e Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 2 Jul 2011 20:26:21 +0000 Subject: [PATCH] [AFD] - Fix a corrupted disconnect timeout pointer being sent to the TDI transport driver svn path=/trunk/; revision=52502 --- reactos/drivers/network/afd/afd/main.c | 7 +++---- reactos/drivers/network/afd/include/afd.h | 1 + 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/reactos/drivers/network/afd/afd/main.c b/reactos/drivers/network/afd/afd/main.c index c81d49c4dd6..b4fc2d462de 100644 --- a/reactos/drivers/network/afd/afd/main.c +++ b/reactos/drivers/network/afd/afd/main.c @@ -603,8 +603,6 @@ static NTSTATUS DoDisconnect(PAFD_FCB FCB) { - PAFD_DISCONNECT_INFO DisReq; - IO_STATUS_BLOCK Iosb; NTSTATUS Status; ASSERT(FCB->DisconnectPending); @@ -621,9 +619,9 @@ DoDisconnect(PAFD_FCB FCB) Status = TdiDisconnect(&FCB->DisconnectIrp.InFlightRequest, FCB->Connection.Object, - &DisReq->Timeout, + &FCB->DisconnectTimeout, FCB->DisconnectFlags, - &Iosb, + &FCB->DisconnectIrp.Iosb, DisconnectComplete, FCB, FCB->ConnectCallInfo, @@ -700,6 +698,7 @@ AfdDisconnect(PDEVICE_OBJECT DeviceObject, PIRP Irp, } FCB->DisconnectFlags = Flags; + FCB->DisconnectTimeout = DisReq->Timeout; FCB->DisconnectPending = TRUE; Status = QueueUserModeIrp(FCB, Irp, FUNCTION_DISCONNECT); diff --git a/reactos/drivers/network/afd/include/afd.h b/reactos/drivers/network/afd/include/afd.h index 72387d226d3..3090d83fca4 100644 --- a/reactos/drivers/network/afd/include/afd.h +++ b/reactos/drivers/network/afd/include/afd.h @@ -184,6 +184,7 @@ typedef struct _AFD_FCB { UINT ConnSeq; USHORT DisconnectFlags; BOOLEAN DisconnectPending; + LARGE_INTEGER DisconnectTimeout; PTRANSPORT_ADDRESS LocalAddress, RemoteAddress; PTDI_CONNECTION_INFORMATION AddressFrom, ConnectCallInfo, ConnectReturnInfo; AFD_TDI_OBJECT AddressFile, Connection;