efi_loader: error handling in efi_disk_add_dev

* If an error occurs in efi_disk_add_dev(), don't leak resources.
* If calloc() fails while creating the file system protocol interface,
  signal an error.
* Rename efi_simple_file_system() to efi_create_simple_file_system().
* Drop a little helpful debug message.

Fixes: 2a92080d8c ("efi_loader: add file/filesys support")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
Heinrich Schuchardt
2023-07-30 14:03:53 +02:00
parent ecae4bbf35
commit cff7700170
3 changed files with 32 additions and 13 deletions

View File

@@ -696,9 +696,21 @@ void efi_signal_event(struct efi_event *event);
/* return true if the device is removable */
bool efi_disk_is_removable(efi_handle_t handle);
/* open file system: */
struct efi_simple_file_system_protocol *efi_simple_file_system(
struct blk_desc *desc, int part, struct efi_device_path *dp);
/**
* efi_create_simple_file_system() - create simple file system protocol
*
* Create a simple file system protocol for a partition.
*
* @desc: block device descriptor
* @part: partition number
* @dp: device path
* @fsp: simple file system protocol
* Return: status code
*/
efi_status_t
efi_create_simple_file_system(struct blk_desc *desc, int part,
struct efi_device_path *dp,
struct efi_simple_file_system_protocol **fsp);
/* open file from device-path: */
struct efi_file_handle *efi_file_from_path(struct efi_device_path *fp);