]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/DriverSampleDxe/DriverSample.c
1. Support inconsistent if opcode used in string/password opcode.
[mirror_edk2.git] / MdeModulePkg / Universal / DriverSampleDxe / DriverSample.c
index efd260512ac62405452aed2dd36d82b5a63b61e4..9b664b4958c50912d98dfe3e2cd2d4f29caa0964 100644 (file)
@@ -910,9 +910,6 @@ DriverCallback (
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-  if ((Type == EFI_IFR_TYPE_STRING) && (Value->string == 0)) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
 \r
   Status = EFI_SUCCESS;\r
   PrivateData = DRIVER_SAMPLE_PRIVATE_FROM_THIS (This);\r
@@ -1166,6 +1163,15 @@ DriverCallback (
     break;\r
 \r
   case 0x2000:\r
+    //\r
+    // Only used to update the state.\r
+    //\r
+    if ((Type == EFI_IFR_TYPE_STRING) && (Value->string == 0) && \r
+      (PrivateData->PasswordState == BROWSER_STATE_SET_PASSWORD)) {\r
+      PrivateData->PasswordState = BROWSER_STATE_VALIDATE_PASSWORD;\r
+      return EFI_INVALID_PARAMETER;\r
+    }\r
+\r
     //\r
     // When try to set a new password, user will be chanlleged with old password.\r
     // The Callback is responsible for validating old password input by user,\r