mirror of
https://github.com/chipsec/chipsec
synced 2026-06-08 13:31:00 +00:00
Fix decode functionality
Fix error when cannot decode EFI_SECTION_USER_INTERFACE Fix error in File size logic within NextFwFile functionality Signed-off-by: BrentHoltsclaw <brent.holtsclaw@intel.com>
This commit is contained in:
@@ -263,7 +263,10 @@ def build_efi_modules_tree( _uefi, fwtype, data, Size, offset, polarity ):
|
||||
sec.calc_hashes( sec.HeaderSize )
|
||||
elif sec.Type == EFI_SECTION_USER_INTERFACE:
|
||||
# "leaf" UI section: update section's UI name
|
||||
sec.ui_string = sec.Image[sec.HeaderSize:-2].decode("utf-16")
|
||||
try:
|
||||
sec.ui_string = sec.Image[sec.HeaderSize:-2].decode("utf-16")
|
||||
except UnicodeDecodeError:
|
||||
pass
|
||||
elif sec.Type == EFI_SECTION_GUID_DEFINED:
|
||||
if len(sec.Image) < sec.HeaderSize+EFI_GUID_DEFINED_SECTION_size:
|
||||
logger().warn("EFI Section seems to be malformed")
|
||||
|
||||
@@ -682,7 +682,7 @@ def NextFwFile(FvImage, FvLength, fof, polarity):
|
||||
next_offset = fof + 8
|
||||
return (cur_offset, next_offset, None, None, None, None, None, None, None, None, update_or_deleted, None)
|
||||
#Get File size
|
||||
if Attributes & FFS_ATTRIB_LARGE_FILE:
|
||||
if Attributes & FFS_ATTRIB_LARGE_FILE and len(FvImage) > fof + struct.calcsize(EFI_FFS_FILE_HEADER2):
|
||||
fsize = struct.unpack("Q",FvImage[fof+file_header_size:fof+file_header_size+struct.calcsize("Q")])[0]
|
||||
fsize &= 0xFFFFFFFF
|
||||
if fsize == 0 or fsize > FvLength-fof:
|
||||
|
||||
Reference in New Issue
Block a user