]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Tcg/Opal/OpalPassword/OpalDriver.c
SecurityPkg/OpalPassword: Fixed input correct password not works issue
[mirror_edk2.git] / SecurityPkg / Tcg / Opal / OpalPassword / OpalDriver.c
index 8733564f00b3043c9775329a20068747de40c615..e3f5056953bb21809354364bb14ac11a37116cbb 100644 (file)
@@ -687,15 +687,26 @@ OpalDriverPopUpPsidInput (
   InputLength = 0;\r
   while (TRUE) {\r
     Mask[InputLength] = L'_';\r
-    CreatePopUp (\r
-      EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
-      &InputKey,\r
-      PopUpString,\r
-      PopUpString2,\r
-      L"---------------------",\r
-      Mask,\r
-      NULL\r
-    );\r
+    if (PopUpString2 == NULL) {\r
+      CreatePopUp (\r
+        EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
+        &InputKey,\r
+        PopUpString,\r
+        L"---------------------",\r
+        Mask,\r
+        NULL\r
+      );\r
+    } else {\r
+      CreatePopUp (\r
+        EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
+        &InputKey,\r
+        PopUpString,\r
+        PopUpString2,\r
+        L"---------------------",\r
+        Mask,\r
+        NULL\r
+      );\r
+    }\r
 \r
     //\r
     // Check key.\r
@@ -1065,6 +1076,15 @@ OpalDriverRequestPassword (
         break;\r
       }\r
 \r
+      //\r
+      // Check whether opal device's Tries value has reach the TryLimit value, if yes, force a shutdown\r
+      // before accept new password.\r
+      //\r
+      if (Ret == TcgResultFailureInvalidType) {\r
+        Count = MAX_PASSWORD_TRY_COUNT;\r
+        break;\r
+      }\r
+\r
       Count++;\r
 \r
       do {\r