summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2015-04-09 19:03:11 +0000
committerjhb <jhb@FreeBSD.org>2015-04-09 19:03:11 +0000
commitde91cfb1641ad37c56d8cc6360dd818198dd58e6 (patch)
tree6b47fc902fade40881c5013e7c6375b9a3650442 /lib
parent12300475aa52fdb7ab4509939b5db58c40ddfdc4 (diff)
downloadFreeBSD-src-de91cfb1641ad37c56d8cc6360dd818198dd58e6.zip
FreeBSD-src-de91cfb1641ad37c56d8cc6360dd818198dd58e6.tar.gz
MFC 279929:
Allow the EFI loader to work with large kernels and/or modules (for example, a large mfsroot). Note that for EFI the kernel and modules (as well as other metadata files such as splash screens or memory disk images) are loaded into a statically-sized staging area. When the EFI loader exits it copies this staging area down to the location the kernel expects to run at. - Add bounds checking to the copy routines to fail attempts to access memory outside of the staging area. Previously loading a combined kernel + modules larger than the staging size (32MB) would overflow the staging area trashing whatever memory was afterwards. Under Intel's OVMF firmware for qemu this resulted in fatal faults in the firmware itself. Now the attempt will fail with ENOMEM. - Allow the staging area size to be configured at compile time via an EFI_STAGING_SIZE variable in src.conf or on the command line. It accepts the size of the staging area in MB. The default size remains 32MB.
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud