[edk2-devel] [PATCH 1/1] StandaloneMmPkg: Fix the failure to find uncompressed inner FV.

Laszlo Ersek lersek at redhat.com
Tue Oct 24 12:02:35 UTC 2023


On 10/24/23 07:53, Xu, Wei6 wrote:
> The MmCoreFfsFindMmDriver only checks for encapsulated compressed FVs.
> When an inner FV is uncompressed, StandaloneMmCore will miss the FV and
> all the MM drivers in the FV will not be dispatched.
> Add checks for uncompressed inner FV to fix this issue.
> 
> Cc: Ard Biesheuvel <ardb+tianocore at kernel.org>
> Cc: Sami Mujawar <sami.mujawar at arm.com>
> Cc: Ray Ni <ray.ni at intel.com>
> Signed-off-by: Wei6 Xu <wei6.xu at intel.com>
> ---
>  StandaloneMmPkg/Core/FwVol.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/StandaloneMmPkg/Core/FwVol.c b/StandaloneMmPkg/Core/FwVol.c
> index 1f6d7714ba97..1a85d80eb9f7 100644
> --- a/StandaloneMmPkg/Core/FwVol.c
> +++ b/StandaloneMmPkg/Core/FwVol.c
> @@ -104,6 +104,17 @@ MmCoreFfsFindMmDriver (
>        break;
>      }
>  
> +    Status = FfsFindSectionData (
> +               EFI_SECTION_FIRMWARE_VOLUME_IMAGE,
> +               FileHeader,
> +               &SectionData,
> +               &SectionDataSize
> +               );
> +    if (!EFI_ERROR (Status)) {
> +      InnerFvHeader = (EFI_FIRMWARE_VOLUME_HEADER *)SectionData;
> +      MmCoreFfsFindMmDriver (InnerFvHeader);
> +    }
> +
>      Status = FfsFindSectionData (
>                 EFI_SECTION_GUID_DEFINED,
>                 FileHeader,

I'd recommend fixing other, more foundational issues first, in this
function, such as:

- memory leaks on error paths

- unbounded recursion

- missing object size checks before casting pointers to header types

At the same time I agree that this change doesn't seem to make things
worse than they are.

Laszlo



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#109998): https://edk2.groups.io/g/devel/message/109998
Mute This Topic: https://groups.io/mt/102152694/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/3943202/1813853/130120423/xyzzy [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list