[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 03/10] xeniface: close thread handle after ObReferenceObjectByHandle in session create


  • To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
  • From: david ambu <david.preetham@xxxxxxxxxx>
  • Date: Thu, 8 Oct 2026 13:01:55 +0100
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=citrix.com header.i="@citrix.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
  • Cc: david ambu <david.preetham@xxxxxxxxxx>
  • Delivery-date: Thu, 08 Oct 2026 12:05:19 +0000
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>

PsCreateSystemThread creates a kernel handle that was never closed.
Add ZwClose(hthread) after taking the object reference via
ObReferenceObjectByHandle, releasing the handle table entry
immediately as it is no longer needed.

Signed-off-by: david ambu <david.preetham@xxxxxxxxxx>
Assisted by Claude Sonnet 4.6
---
 src/xeniface/wmi.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/xeniface/wmi.c b/src/xeniface/wmi.c
index 3392d3d..f2b4802 100644
--- a/src/xeniface/wmi.c
+++ b/src/xeniface/wmi.c
@@ -1218,7 +1218,8 @@ SessionCreate(
     if (!NT_SUCCESS(status))
         goto fail6;
 
-    ObReferenceObjectByHandle(hthread, THREAD_ALL_ACCESS, NULL, KernelMode,  
&Session->WatchThread, NULL);
+    ObReferenceObjectByHandle(hthread, THREAD_ALL_ACCESS, NULL, KernelMode, 
&Session->WatchThread, NULL);
+    ZwClose(hthread);
     ReleaseMutex(&Fdo->SessionLock);
 
     RtlFreeAnsiString(&ansi);
-- 
2.51.0.windows.1




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.