mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
Current heap size in stage2 is three pages long [0x6000-0x9000] but get_zeroed_page() assumes it is one page more which might lead to a heap overflow which will corrupt data located at 0x9000 (stage3 parameters). Calculate the heap size of a stage at run-time by using the symbols provided by linker. Furthermore, validate the given address in free_page() to stop illegal memory accesses. Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com> Reviewed-by: Philipp Rudo <prudo@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>