From d754a87d5cf4a776045a1c56f0064ad5f8229205 Mon Sep 17 00:00:00 2001 From: Julian Stecklina Date: Sun, 27 Nov 2022 20:04:41 +0100 Subject: [PATCH] lanzaboote: cleanup kernel/initrd opening --- rust/lanzaboote/src/main.rs | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/rust/lanzaboote/src/main.rs b/rust/lanzaboote/src/main.rs index f172c49..a534616 100644 --- a/rust/lanzaboote/src/main.rs +++ b/rust/lanzaboote/src/main.rs @@ -85,7 +85,9 @@ fn main(handle: Handle, mut system_table: SystemTable) -> Status { .expect("Failed to extract configuration from binary. Did you run lanzatool?"); let mut kernel_file; - let initrd = { + let initrd_file; + + { let mut file_system = system_table .boot_services() .get_image_file_system(handle) @@ -104,15 +106,16 @@ fn main(handle: Handle, mut system_table: SystemTable) -> Status { .into_regular_file() .expect("Kernel is not a regular file"); - root.open( - &config.initrd_filename, - FileMode::Read, - FileAttribute::empty(), - ) - .expect("Failed to open initrd for reading") - .into_regular_file() - .expect("Initrd is not a regular file") - }; + initrd_file = root + .open( + &config.initrd_filename, + FileMode::Read, + FileAttribute::empty(), + ) + .expect("Failed to open initrd for reading") + .into_regular_file() + .expect("Initrd is not a regular file"); + } let kernel_cmdline = booted_image_cmdline(system_table.boot_services()).expect("Failed to fetch command line"); @@ -145,7 +148,7 @@ fn main(handle: Handle, mut system_table: SystemTable) -> Status { ); } - let mut initrd_loader = InitrdLoader::new(system_table.boot_services(), handle, initrd) + let mut initrd_loader = InitrdLoader::new(system_table.boot_services(), handle, initrd_file) .expect("Failed to load the initrd. It may not be there or it is not signed"); let status = system_table .boot_services()