RedfishPkg/RedfishPlatformConfigDxe: HII string is deleted unexpectedly

Add the condition check when delete HII string.
Only when the HiiStatement operand equal to "EFI_IFR_STRING_OP"
and the statement value type = EFI_IFR_TYPE_STRING.

Signed-off-by: Abner Chang <abner.chang@amd.com>
Co-authored-by: Nickle Wang <nicklew@nvidia.com>
Cc: Igor Kulchytskyy <igork@ami.com>
Reviewed-by: Nickle Wang <nicklew@nvidia.com>
Reviewed-by: Igor Kulchytskyy <igork@ami.com>
This commit is contained in:
Abner Chang 2024-03-21 19:35:39 +08:00 committed by mergify[bot]
parent c8f56800fd
commit 2e4e41d012
1 changed files with 5 additions and 2 deletions

View File

@ -1873,8 +1873,11 @@ RedfishPlatformConfigSetStatementCommon (
DEBUG ((DEBUG_ERROR, "%a: failed to save question value: %r\n", __func__, Status));
}
if (StatementValue->Value.string != 0) {
HiiDeleteString (StatementValue->Value.string, TargetStatement->ParentForm->ParentFormset->HiiHandle);
if ((TargetStatement->HiiStatement->Operand == EFI_IFR_STRING_OP) && (StatementValue->Type == EFI_IFR_TYPE_STRING)) {
if (StatementValue->Value.string != 0) {
// Delete HII string which was created for HII statement operand = EFI_IFR_STRING_OP and Type = EFI_IFR_TYPE_STRING.
HiiDeleteString (StatementValue->Value.string, TargetStatement->ParentForm->ParentFormset->HiiHandle);
}
}
return Status;