]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/IScsiDxe/IScsiDriver.c
NetworkPkg/IScsiDxe: Fix the incorrect error handling in DriverEntryPoint
[mirror_edk2.git] / NetworkPkg / IScsiDxe / IScsiDriver.c
index 269c1aec5c9fcfdb9b6f014633ddbc3340625efd..2249919e18e9799a6f5a77cbb1b0845360902ccc 100644 (file)
@@ -1813,7 +1813,7 @@ IScsiDriverEntryPoint (
   //\r
   Status = IScsiCreateKeywords (PcdGet8 (PcdMaxIScsiAttemptNumber));\r
   if (EFI_ERROR (Status)) {\r
-    goto Error5;\r
+    goto Error6;\r
   }\r
 \r
   //\r
@@ -1840,13 +1840,16 @@ IScsiDriverEntryPoint (
   return EFI_SUCCESS;\r
 \r
 Error6:\r
-  IScsiConfigFormUnload (gIScsiIp4DriverBinding.DriverBindingHandle);\r
+  IScsiCleanAttemptVariable ();\r
 \r
 Error5:\r
-  IScsiCleanAttemptVariable ();\r
+  IScsiConfigFormUnload (gIScsiIp4DriverBinding.DriverBindingHandle);\r
 \r
 Error4:\r
-  FreePool (mPrivate);\r
+  if (mPrivate != NULL) {\r
+    FreePool (mPrivate);\r
+    mPrivate = NULL;\r
+  }\r
 \r
 Error3:\r
   gBS->UninstallMultipleProtocolInterfaces (\r