]> xenbits.xensource.com Git - pvdrivers/win/xenbus.git/commitdiff
xenfilt: Move list pointer to next entry when pdo is missing
authorRichard Turner <rneilturner@gmail.com>
Fri, 8 Oct 2021 13:22:44 +0000 (09:22 -0400)
committerPaul Durrant <pdurrant@amazon.com>
Sat, 9 Oct 2021 15:38:38 +0000 (16:38 +0100)
The pointer to the list of fdo entries is never advanced
when the pdo is missing, causing a BSOD. When a device
is missing, advance the list pointer to the next entry.

Signed-off-by: Richard Turner <turnerr@ainfosec.com>
src/xenfilt/fdo.c

index b8cf4246e12c9a154093d1f092d60bff1eade3bf..6a45b0f6d19191355ad8a9aeb7fbe9f508837e5c 100644 (file)
@@ -1107,7 +1107,7 @@ FdoQueryDeviceRelations(
                 if (PdoGetDevicePnpState(Pdo) == Deleted)
                     PdoDestroy(Pdo);
 
-                continue;
+                goto next;
             }
 
             if (PdoGetDevicePnpState(Pdo) == Present)
@@ -1116,6 +1116,7 @@ FdoQueryDeviceRelations(
             ObReferenceObject(PdoGetPhysicalDeviceObject(Pdo));
             Relations->Objects[Relations->Count++] = PdoGetPhysicalDeviceObject(Pdo);
 
+next:
             ListEntry = Next;
         }