diff --git a/drivers/network/ndis/ndis/config.c b/drivers/network/ndis/ndis/config.c index bdd8ed288d5..233a1f453ea 100644 --- a/drivers/network/ndis/ndis/config.c +++ b/drivers/network/ndis/ndis/config.c @@ -283,6 +283,7 @@ NdisOpenProtocolConfiguration( if(!ConfigurationContext) { NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n")); + ZwClose(KeyHandle); *ConfigurationHandle = NULL; *Status = NDIS_STATUS_FAILURE; return; @@ -849,6 +850,7 @@ NdisOpenConfigurationKeyByIndex( if(!ConfigurationContext) { NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n")); + ZwClose(RegKeyHandle); *Status = NDIS_STATUS_FAILURE; return; } @@ -907,6 +909,7 @@ NdisOpenConfigurationKeyByName( if(!ConfigurationContext) { NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n")); + ZwClose(RegKeyHandle); *Status = NDIS_STATUS_FAILURE; return; } diff --git a/drivers/network/ndis/ndis/io.c b/drivers/network/ndis/ndis/io.c index 160ea28be79..94aae517043 100644 --- a/drivers/network/ndis/ndis/io.c +++ b/drivers/network/ndis/ndis/io.c @@ -407,6 +407,7 @@ NdisMAllocateMapRegisters( if(!NT_SUCCESS(NtStatus)) { NDIS_DbgPrint(MIN_TRACE, ("IoAllocateAdapterChannel failed: 0x%x\n", NtStatus)); + ExFreePool(Adapter->MapRegisters); return NDIS_STATUS_RESOURCES; } @@ -417,6 +418,7 @@ NdisMAllocateMapRegisters( if(!NT_SUCCESS(NtStatus)) { NDIS_DbgPrint(MIN_TRACE, ("KeWaitForSingleObject failed: 0x%x\n", NtStatus)); + ExFreePool(Adapter->MapRegisters); return NDIS_STATUS_RESOURCES; }