read_section() needs to be more careful: efi_arch_use_config_file()
may have found a DTB file (but without modules), and there may be no DTB
specified in the EFI config file. In this case the pointer to the blob
must not be overwritten with NULL when no ".dtb" section is present
either.
Fixes: 8a71d50ed40b ("efi: Enable booting unified hypervisor/kernel/initrd images")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
const CHAR16 *name, struct file *file,
const char *options)
{
- file->ptr = pe_find_section(image->ImageBase, image->ImageSize,
- name, &file->size);
- if ( !file->ptr )
+ const void *ptr = pe_find_section(image->ImageBase, image->ImageSize,
+ name, &file->size);
+
+ if ( !ptr )
return false;
+ file->ptr = ptr;
+
handle_file_info(name, file, options);
return true;