- Fix 3 handle leaks
authorCameron Gutman <aicommander@gmail.com>
Wed, 10 Sep 2008 09:34:28 +0000 (09:34 +0000)
committerCameron Gutman <aicommander@gmail.com>
Wed, 10 Sep 2008 09:34:28 +0000 (09:34 +0000)
 - Fix 2 memory leaks

svn path=/branches/aicom-network-fixes/; revision=36115

drivers/network/ndis/ndis/config.c
drivers/network/ndis/ndis/io.c

index bdd8ed2..233a1f4 100644 (file)
@@ -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;
     }
index 160ea28..94aae51 100644 (file)
@@ -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;
         }