summaryrefslogtreecommitdiffstats
path: root/RedfishPkg/Library/HiiUtilityLib
diff options
context:
space:
mode:
Diffstat (limited to 'RedfishPkg/Library/HiiUtilityLib')
-rw-r--r--RedfishPkg/Library/HiiUtilityLib/HiiUtilityInternal.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/RedfishPkg/Library/HiiUtilityLib/HiiUtilityInternal.c b/RedfishPkg/Library/HiiUtilityLib/HiiUtilityInternal.c
index b61b7f5fcd..825b02d1fb 100644
--- a/RedfishPkg/Library/HiiUtilityLib/HiiUtilityInternal.c
+++ b/RedfishPkg/Library/HiiUtilityLib/HiiUtilityInternal.c
@@ -4125,7 +4125,12 @@ EvaluateHiiExpression (
goto Done;
}
- Value = (EFI_HII_VALUE *)&Question->Value;
+ Status = HiiStatementValueToHiiValue (&Question->Value, Value);
+ if (EFI_ERROR (Status)) {
+ ReleaseHiiValue (Value);
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ }
+
break;
case EFI_IFR_SECURITY_OP:
@@ -4334,7 +4339,11 @@ EvaluateHiiExpression (
//
// push the questions' value on to the expression stack
//
- Value = (EFI_HII_VALUE *)&Question->Value;
+ Status = HiiStatementValueToHiiValue (&Question->Value, Value);
+ if (EFI_ERROR (Status)) {
+ ReleaseHiiValue (Value);
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ }
}
break;
@@ -4461,7 +4470,12 @@ EvaluateHiiExpression (
break;
}
- Value = (EFI_HII_VALUE *)&Question->Value;
+ Status = HiiStatementValueToHiiValue (&Question->Value, Value);
+ if (EFI_ERROR (Status)) {
+ ReleaseHiiValue (Value);
+ Value->Type = EFI_IFR_TYPE_UNDEFINED;
+ }
+
break;
case EFI_IFR_STRING_REF2_OP: