• Ard Biesheuvel's avatar
    efi: zboot: create MemoryMapped() device path for the parent if needed · 3c6edd90
    Ard Biesheuvel authored
    LoadImage() is supposed to install an instance of the protocol
    EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL onto the loaded image's handle so
    that the program can figure out where it was loaded from. The reference
    implementation even does this (with a NULL protocol pointer) if the call
    to LoadImage() used the source buffer and size arguments, and passed
    NULL for the image device path. Hand rolled implementations of LoadImage
    may behave differently, though, and so it is better to tolerate
    situations where the protocol is missing. And actually, concatenating an
    Offset() node to a NULL device path (as we do currently) is not great
    either.
    
    So in cases where the protocol is absent, or when it points to NULL,
    construct a MemoryMapped() device node as the base node that describes
    the parent image's footprint in memory.
    
    Cc: Daan De Meyer <daandemeyer@fb.com>
    Cc: Jeremy Linton <jeremy.linton@arm.com>
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    3c6edd90
zboot.c 8.74 KB