pefile has an hardcoded limit to 256MB per section:
https://github.com/erocarrera/pefile/issues/396
When building an initrd with large firmware files and
lots of kernel modules, this limit can be reached.
Skip over those warnings.
)
pe = pefile.PE(data=pe.write(), fast_load=True)
+ # pefile has an hardcoded limit of 256MB, which is not enough when building an initrd with large firmware
+ # files and all kernel modules. See: https://github.com/erocarrera/pefile/issues/396
warnings = pe.get_warnings()
- if warnings:
+ for w in warnings:
+ if 'VirtualSize is extremely large' in w:
+ continue
+ if 'VirtualAddress is beyond' in w:
+ continue
raise PEError(f'pefile warnings treated as errors: {warnings}')
# When attaching signatures we are operating on an existing UKI which might be signed