git: 0d693b8bbc5b - stable/13 - efi loader: disallow user to configure staging area size less than default

Konstantin Belousov kib at FreeBSD.org
Fri Sep 3 01:08:56 UTC 2021


The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=0d693b8bbc5ba931d0f75541e2c7627f6d62dbb7

commit 0d693b8bbc5ba931d0f75541e2c7627f6d62dbb7
Author:     Konstantin Belousov <kib at FreeBSD.org>
AuthorDate: 2021-08-26 21:46:48 +0000
Commit:     Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-09-03 01:08:35 +0000

    efi loader: disallow user to configure staging area size less than default
    
    (cherry picked from commit b54eec8366605d9c2303277cf2ab4b605289910a)
---
 stand/efi/loader/copy.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/stand/efi/loader/copy.c b/stand/efi/loader/copy.c
index 3f3d46346b7c..cd1f9f00c88a 100644
--- a/stand/efi/loader/copy.c
+++ b/stand/efi/loader/copy.c
@@ -178,12 +178,13 @@ out:
 }
 #endif /* __i386__ || __amd64__ */
 
-#ifndef EFI_STAGING_SIZE
 #if defined(__arm__)
-#define	EFI_STAGING_SIZE	32
+#define	DEFAULT_EFI_STAGING_SIZE	32
 #else
-#define	EFI_STAGING_SIZE	64
+#define	DEFAULT_EFI_STAGING_SIZE	64
 #endif
+#ifndef EFI_STAGING_SIZE
+#define	EFI_STAGING_SIZE	DEFAULT_EFI_STAGING_SIZE
 #endif
 
 #if defined(__aarch64__) || defined(__amd64__) || defined(__arm__) || \
@@ -314,8 +315,12 @@ efi_copy_init(void)
 {
 	EFI_STATUS	status;
 	unsigned long nr_pages;
+	vm_offset_t ess;
 
-	nr_pages = EFI_SIZE_TO_PAGES(M(1) * (EFI_STAGING_SIZE));
+	ess = EFI_STAGING_SIZE;
+	if (ess < DEFAULT_EFI_STAGING_SIZE)
+		ess = DEFAULT_EFI_STAGING_SIZE;
+	nr_pages = EFI_SIZE_TO_PAGES(M(1) * ess);
 
 #if defined(__i386__) || defined(__amd64__)
 	/*


More information about the dev-commits-src-branches mailing list