https://git.reactos.org/?p=reactos.git;a=commitdiff;h=41e7c818d1c7045fe2f0d9af8a55102fde17018a

commit 41e7c818d1c7045fe2f0d9af8a55102fde17018a
Author:     Hermès Bélusca-Maïto <hermes.belusca-ma...@reactos.org>
AuthorDate: Tue Jun 11 22:29:34 2019 +0200
Commit:     Hermès Bélusca-Maïto <hermes.belusca-ma...@reactos.org>
CommitDate: Tue Jun 11 22:29:34 2019 +0200

    [NTOS] IoSetHardErrorOrVerifyDevice(): Check whether the IRP is not 
associated with any thread.
---
 ntoskrnl/io/iomgr/util.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/ntoskrnl/io/iomgr/util.c b/ntoskrnl/io/iomgr/util.c
index bd7fdde85dc..95a211d1594 100644
--- a/ntoskrnl/io/iomgr/util.c
+++ b/ntoskrnl/io/iomgr/util.c
@@ -316,6 +316,14 @@ NTAPI
 IoSetHardErrorOrVerifyDevice(IN PIRP Irp,
                              IN PDEVICE_OBJECT DeviceObject)
 {
+    /* Ignore in case the IRP is not associated with any thread */
+    if (!Irp->Tail.Overlay.Thread)
+    {
+        DPRINT1("IoSetHardErrorOrVerifyDevice(0x%p, 0x%p): IRP has no thread, 
ignoring.\n"
+                Irp, DeviceObject);
+        return;
+    }
+
     /* Set the pointer in the IRP */
     Irp->Tail.Overlay.Thread->DeviceToVerify = DeviceObject;
 }

Reply via email to