summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDandan Bi <dandan.bi@intel.com>2024-11-19 16:56:28 +0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2024-12-02 13:38:48 +0000
commit9112fb0ecc6db221268cb54eec76f07149756c91 (patch)
tree289a6834111ebdced3ad7a2057e54032fc7988fd
parent9a9bcacbe092fdada6268ef4007430976d945af7 (diff)
downloadedk2-9112fb0ecc6db221268cb54eec76f07149756c91.tar.gz
MdeModulePkg/HiiDatabase: Return default value for BIT VarStore as UNIT32
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4874 Question CheckBox, OneOf and Numeric can refer to Bit EFI VarStore. CheckBox: data type is Boolean (1 byte), Numeric/Oneof: data type is always UNIT32 for BIT VarStore, When get default value for BIT VarStore, should return default value with sizeof (UINT32) rather than the byte the bit width occupied. Or incorrect default value will be used due to the size mismatch. Signed-off-by: Dandan Bi <dandan.bi@intel.com>
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/Database.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c b/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c
index ac0cb7e773..09aefc662a 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c
@@ -825,7 +825,7 @@ FindQuestionDefaultSetting (
if (BitFieldQuestion) {
CopyMem (&BufferValue, (UINT8 *)AuthVariableHeader + sizeof (AUTHENTICATED_VARIABLE_HEADER) + AuthVariableHeader->NameSize + ByteOffset, Width);
BitFieldVal = BitFieldRead32 (BufferValue, StartBit, EndBit);
- CopyMem (ValueBuffer, &BitFieldVal, Width);
+ CopyMem (ValueBuffer, &BitFieldVal, sizeof (UINT32));
} else {
CopyMem (ValueBuffer, (UINT8 *)AuthVariableHeader + sizeof (AUTHENTICATED_VARIABLE_HEADER) + AuthVariableHeader->NameSize + IfrQuestionHdr->VarStoreInfo.VarOffset, Width);
}
@@ -862,7 +862,7 @@ FindQuestionDefaultSetting (
if (BitFieldQuestion) {
CopyMem (&BufferValue, (UINT8 *)VariableHeader + sizeof (VARIABLE_HEADER) + VariableHeader->NameSize + ByteOffset, Width);
BitFieldVal = BitFieldRead32 (BufferValue, StartBit, EndBit);
- CopyMem (ValueBuffer, &BitFieldVal, Width);
+ CopyMem (ValueBuffer, &BitFieldVal, sizeof (UINT32));
} else {
CopyMem (ValueBuffer, (UINT8 *)VariableHeader + sizeof (VARIABLE_HEADER) + VariableHeader->NameSize + IfrQuestionHdr->VarStoreInfo.VarOffset, Width);
}