From 7df2c2957f5feecd6049dc4dbff87451d09bc58d Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Mon, 8 Sep 2025 11:40:33 +0900 Subject: [PATCH] Windows driver fix: Decrement IoThreadPendingRequestCount on allocation failure in MainThreadProc Added InterlockedDecrement in the error path when GetPoolBuffer fails for EncryptedIoRequest to ensure accurate tracking of pending IO requests and prevent potential resource leaks. --- src/Driver/EncryptedIoQueue.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Driver/EncryptedIoQueue.c b/src/Driver/EncryptedIoQueue.c index 146410a0..e990ebdb 100644 --- a/src/Driver/EncryptedIoQueue.c +++ b/src/Driver/EncryptedIoQueue.c @@ -1046,6 +1046,7 @@ static VOID MainThreadProc (PVOID threadArg) request = GetPoolBuffer (queue, sizeof (EncryptedIoRequest)); if (!request) { + InterlockedDecrement(&queue->IoThreadPendingRequestCount); CompleteOriginalIrp (item, STATUS_INSUFFICIENT_RESOURCES, 0); break; }