diff --git a/drivers/network/afd/afd/bind.c b/drivers/network/afd/afd/bind.c index 1962d226fa7..5d8e1973087 100644 --- a/drivers/network/afd/afd/bind.c +++ b/drivers/network/afd/afd/bind.c @@ -51,7 +51,7 @@ NTSTATUS WarmSocketForBind( PAFD_FCB FCB, ULONG ShareType ) { Status = STATUS_NO_MEMORY; } - if (NT_SUCCESS(Status)) + if (NT_SUCCESS(Status) && FCB->Recv.Content < FCB->Recv.Size) { Status = TdiReceiveDatagram(&FCB->ReceiveIrp.InFlightRequest, FCB->AddressFile.Object, diff --git a/drivers/network/afd/afd/read.c b/drivers/network/afd/afd/read.c index b0ff01add68..e786faa2515 100644 --- a/drivers/network/afd/afd/read.c +++ b/drivers/network/afd/afd/read.c @@ -681,7 +681,7 @@ PacketSocketRecvComplete( } else FCB->PollState &= ~AFD_EVENT_RECEIVE; - if( NT_SUCCESS(Irp->IoStatus.Status) ) { + if( NT_SUCCESS(Irp->IoStatus.Status) && FCB->Recv.Content < FCB->Recv.Size ) { /* Now relaunch the datagram request */ Status = TdiReceiveDatagram ( &FCB->ReceiveIrp.InFlightRequest,