> On 7. Feb 2023, at 11:01, Ard Biesheuvel <a...@kernel.org> wrote:
> 
> Actually, it seems UnprotectUefiImage () is corrent under the
> assumption that all code regions have EFI_MEMORY_XP cleared by
> default.
> 
> However, if you redefine the policy to set EFI_MEMORY_XP on code
> regions by default, and only permit execution after remapping the code
> read-only explicitly, and only then clearing EFI_MEMORY_XP, that
> routine should revert the region to EFI_MEMORY_XP. But given the
> existing ASSERT()s on having EFI_MEMORY_XP cleared for all code
> regions, the code as it is currently is not incorrect.

Right. My main issue is, it’s nowhere documented that manually changed 
permissions must be restored to their default before freeing. Within DxeCore, 
this is easily done using the PCDs, but outside (say you allocate a trampoline 
buffer and then free it), you would need to manually query the permissions, 
store them, and restore later.

I did *not* look into the implementation code in detail, but does the new 
memory permission protocol impose the same constraint implementation-wise and 
if so, is this documented anywhere?

PS: Fetched the wrong link in my last mail: https://lkml.org/lkml/2022/12/15/352

Best regards,
Marvin

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#99732): https://edk2.groups.io/g/devel/message/99732
Mute This Topic: https://groups.io/mt/96664071/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to