]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Ensure we have a large enough stack for the lua loader
authorAndrew Turner <andrew@FreeBSD.org>
Mon, 27 Aug 2018 11:14:49 +0000 (11:14 +0000)
committerAndrew Turner <andrew@FreeBSD.org>
Mon, 27 Aug 2018 11:14:49 +0000 (11:14 +0000)
commit78da60464191371524fd3d85da0a9efe63369497
tree092d295c18b5d98a95294d4103909062803b580b
parent9ea0458663f0e58baf933e9919eed9a2de571828
Ensure we have a large enough stack for the lua loader

Lua has a few places where it allocates a large buffer on the stack. This
is normally fine, except there are a few places where there can be multiple
frames with this buffer. This can cause a stack overflow on some arm64 SoCs.

Fix this by allocating our own stack in loader.efi large enough for these
objects. The required size has been found by tracing how the stack pointer
changes in a virtual machine and found to be no larger than 50kB. A
larger stack is allocated to reduce the likelihood of overflow from future
changes.

Reviewed by: kevans
Approved by: re (kib)
Differential Revision: https://reviews.freebsd.org/D16886
stand/efi/boot1/Makefile
stand/efi/loader/arch/arm64/start.S