From 6b8b704e6f8bb8aabde5ea73d472b9942b440ba5 Mon Sep 17 00:00:00 2001 From: Joachim Henze Date: Sat, 17 Feb 2018 19:52:32 +0100 Subject: [PATCH] [AFD] Apply unfinished patch to avoid BSODs CORE-14048 & CORE-12520 Fixes BSODs when starting Deluge Torrent 1.3.12.1 & QBitTorrent 3.2.0 due to running "Out of NP Expansion Pool" This patch is still WIP of ThFabba. --- drivers/network/afd/afd/bind.c | 2 +- drivers/network/afd/afd/read.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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,