fix(media-loader): eliminate usage of unwrap and swap to result

This commit is contained in:
2025-10-24 19:27:43 -07:00
parent a15c92a749
commit 482db0b763

View File

@@ -97,7 +97,7 @@ impl MediaLoaderHandle {
} }
/// Creates a new device path for the media loader based on a vendor `guid`. /// Creates a new device path for the media loader based on a vendor `guid`.
fn device_path(guid: Guid) -> Box<DevicePath> { fn device_path(guid: Guid) -> Result<Box<DevicePath>> {
// The buffer for the device path. // The buffer for the device path.
let mut path = Vec::new(); let mut path = Vec::new();
// Build a device path for the media loader with a vendor-specific guid. // Build a device path for the media loader with a vendor-specific guid.
@@ -106,18 +106,18 @@ impl MediaLoaderHandle {
vendor_guid: guid, vendor_guid: guid,
vendor_defined_data: &[], vendor_defined_data: &[],
}) })
.unwrap() // We know that the device path is valid, so we can unwrap. .context("unable to produce device path")?
.finalize() .finalize()
.unwrap(); // We know that the device path is valid, so we can unwrap. .context("unable to produce device path")?;
// Convert the device path to a boxed device path. // Convert the device path to a boxed device path.
// This is safer than dealing with a pooled device path. // This is safer than dealing with a pooled device path.
path.to_boxed() Ok(path.to_boxed())
} }
/// Checks if the media loader is already registered with the UEFI stack. /// Checks if the media loader is already registered with the UEFI stack.
fn already_registered(guid: Guid) -> Result<bool> { fn already_registered(guid: Guid) -> Result<bool> {
// Acquire the device path for the media loader. // Acquire the device path for the media loader.
let path = Self::device_path(guid); let path = Self::device_path(guid)?;
let mut existing_path = path.as_ref(); let mut existing_path = path.as_ref();
@@ -142,7 +142,7 @@ impl MediaLoaderHandle {
/// to load the data from. /// to load the data from.
pub fn register(guid: Guid, data: Box<[u8]>) -> Result<MediaLoaderHandle> { pub fn register(guid: Guid, data: Box<[u8]>) -> Result<MediaLoaderHandle> {
// Acquire the vendor device path for the media loader. // Acquire the vendor device path for the media loader.
let path = Self::device_path(guid); let path = Self::device_path(guid)?;
// Check if the media loader is already registered. // Check if the media loader is already registered.
// If it is, we can't register it again safely. // If it is, we can't register it again safely.