Jeremy Szu 012fe7f055 loader/i386/linux: Fix initrd maximum address overflow
The current i386 initrd is limited under 1 GiB memory and it works with
most compressed initrds (also initrd_addr_max case reported by kernel).

addr = (addr_max - aligned_size) & ~0xFFF;

Above line is used to calculate the reasonable address to store the initrd.

However, if initrd size is greater than 1 GiB or initrd_addr_max, then it
will get overflow, especially on x86_64 arch.

Therefore, add a check point to prevent it overflows as well as having
a debug log for complex story of initrd addresses.

Signed-off-by: Jeremy Szu <jeremy.szu@canonical.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
2022-12-07 23:38:26 +01:00
..
2019-02-25 11:33:06 +01:00
2022-03-14 15:47:32 +01:00
2020-07-29 16:55:47 +02:00
2013-05-07 11:44:15 +02:00
2022-03-14 15:47:32 +01:00