From: Thomas Faber Date: Mon, 4 Dec 2017 20:13:43 +0000 (+0100) Subject: [AFD] Respect the maximum receive buffer size for datagram sockets. CORE-14048 X-Git-Tag: 0.4.11-dev~413 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=05b4bd38338abce17ea3e2b8484baad3984a44cd [AFD] Respect the maximum receive buffer size for datagram sockets. CORE-14048 --- 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,