|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 2/3] Fix issues in PdoStartDevice()
HardwareKey was not being closed in normal operation.
SoftwareKey only requires KEY_READ access.
Move DriverRequestReboot() to the point it is required to avoid a 'goto' in
the error handlers.
Signed-off-by: Owen Smith <owen.smith@xxxxxxxxx>
---
src/xenvif/pdo.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/src/xenvif/pdo.c b/src/xenvif/pdo.c
index 29d4bdd..f23b047 100644
--- a/src/xenvif/pdo.c
+++ b/src/xenvif/pdo.c
@@ -1296,7 +1296,7 @@ PdoStartDevice(
goto fail2;
status = RegistryOpenSoftwareKey(__PdoGetDeviceObject(Pdo),
- KEY_ALL_ACCESS,
+ KEY_READ,
&SoftwareKey);
if (!NT_SUCCESS(status))
goto fail3;
@@ -1370,12 +1370,12 @@ PdoStartDevice(
if (Pdo->HasAlias || !PdoUnplugRequested(Pdo)) {
PdoUnplugRequest(Pdo, TRUE);
+ DriverRequestReboot();
status = STATUS_PNP_REBOOT_REQUIRED;
goto fail9;
}
-
//
// If there is a stack bound then restore any settings that
// may have been saved from an aliasing device.
@@ -1431,6 +1431,7 @@ PdoStartDevice(
__FreeMibTable(Table);
+ RegistryCloseKey(HardwareKey);
RegistryCloseKey(SoftwareKey);
return STATUS_SUCCESS;
@@ -1438,14 +1439,9 @@ PdoStartDevice(
fail10:
Error("fail10\n");
- __FreeMibTable(Table);
-
- goto fail6;
-
fail9:
Error("fail9\n");
- DriverRequestReboot();
__FreeMibTable(Table);
fail8:
--
2.41.0.windows.3
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |