CC: Jian J Wang <jian.j.w...@intel.com> CC: Liming Gao <gaolim...@byosoft.com.cn> CC: Dandan Bi <dandan...@intel.com> CC: Eric Dong <eric.d...@intel.com> CC: devel@edk2.groups.io Signed-off-by: JoeX Lu <pen-chunx...@intel.com> --- MdeModulePkg/Library/UefiHiiLib/HiiLib.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/MdeModulePkg/Library/UefiHiiLib/HiiLib.c b/MdeModulePkg/Library/UefiHiiLib/HiiLib.c index 63a37ab59a..a024d3b8d2 100644 --- a/MdeModulePkg/Library/UefiHiiLib/HiiLib.c +++ b/MdeModulePkg/Library/UefiHiiLib/HiiLib.c @@ -3415,25 +3415,31 @@ HiiCreateGuidOpCode ( IN UINTN OpCodeSize ) { - EFI_IFR_GUID OpCode; + EFI_IFR_GUID *OpCode; EFI_IFR_GUID *OpCodePointer; ASSERT (Guid != NULL); ASSERT (OpCodeSize >= sizeof (OpCode)); - ZeroMem (&OpCode, sizeof (OpCode)); - CopyGuid ((EFI_GUID *)(VOID *)&OpCode.Guid, Guid); + OpCode = (EFI_IFR_GUID *) AllocateZeroPool (sizeof (EFI_IFR_GUID)); + if (OpCode == NULL) { + return NULL; + } + CopyGuid ((EFI_GUID *)(VOID *)&OpCode->Guid, Guid); OpCodePointer = (EFI_IFR_GUID *)InternalHiiCreateOpCodeExtended ( OpCodeHandle, - &OpCode, + OpCode, EFI_IFR_GUID_OP, - sizeof (OpCode), - OpCodeSize - sizeof (OpCode), + sizeof (EFI_IFR_GUID), + OpCodeSize - sizeof (EFI_IFR_GUID), 0 ); if ((OpCodePointer != NULL) && (GuidOpCode != NULL)) { - CopyMem (OpCodePointer + 1, (EFI_IFR_GUID *)GuidOpCode + 1, OpCodeSize - sizeof (OpCode)); + CopyMem (OpCodePointer + 1, (EFI_IFR_GUID *)GuidOpCode + 1, OpCodeSize - sizeof (EFI_IFR_GUID)); + } + if (OpCode != NULL) { + FreePool (OpCode); } return (UINT8 *)OpCodePointer; -- 2.31.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#103695): https://edk2.groups.io/g/devel/message/103695 Mute This Topic: https://groups.io/mt/98531621/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-