- Fix a corrupted disconnect timeout pointer being sent to the TDI transport driver

svn path=/trunk/; revision=52502
This commit is contained in:
Cameron Gutman 2011-07-02 20:26:21 +00:00
parent 16ded1b13b
commit f828c2431c
2 changed files with 4 additions and 4 deletions

View file

@ -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);

View file

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