Commit 0812d1a0 authored by Alexander Graf's avatar Alexander Graf Committed by Tom Rini

efi_loader: disk: Sanitize exposed devices

When a target device is 0 bytes long, there's no point in exposing it to
the user. Let's just skip them.

Also, when an offset is passed into the efi disk creation, we should
remove this offset from the total number of sectors we can handle.

This patch fixes both things.
Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
parent f9d334bd
......@@ -202,6 +202,10 @@ static void efi_disk_add_dev(const char *name,
struct efi_device_path_file_path *dp;
int objlen = sizeof(*diskobj) + (sizeof(*dp) * 2);
/* Don't add empty devices */
if (!desc->lba)
return;
diskobj = calloc(1, objlen);
/* Fill in object data */
......@@ -221,7 +225,7 @@ static void efi_disk_add_dev(const char *name,
diskobj->media.media_present = 1;
diskobj->media.block_size = desc->blksz;
diskobj->media.io_align = desc->blksz;
diskobj->media.last_block = desc->lba;
diskobj->media.last_block = desc->lba - offset;
diskobj->ops.media = &diskobj->media;
/* Fill in device path */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment