[edk2-devel] [PATCH] MdeModulePkg: Fix runtime panic in ValidateSetVariable()
Ard Biesheuvel
ard.biesheuvel at arm.com
Wed Nov 25 21:05:50 UTC 2020
On 11/25/20 9:13 PM, James Bottomley wrote:
> The current variable policy is allocated by AllocatePool(), which is
> boot time only. This means that if you do any variable setting in the
> runtime, the policy has been freed. Ordinarily this isn't detected
> because freed memory is still there, but when you boot the Linux
> kernel, it's been remapped so the actual memory no longer exists in
> the memory map causing a page fault.
>
> Fix this by making it AllocateRuntimePool(). For SMM drivers, the
> platform DSC is responsible for resolving the MemoryAllocationLib
> class to the SmmMemoryAllocationLib instance. In the
> SmmMemoryAllocationLib instance, AllocatePool() and
> AllocateRuntimePool() are implemented identically. Therefore this
> change is a no-op when the RegisterVariablePolicy() function is built
> into an SMM driver. The fix affects runtime DXE drivers only.
>
> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3092
> Signed-off-by: James Bottomley <jejb at linux.ibm.com>
Thanks James
Acked-by: Ard Biesheuvel <ard.biesheuvel at arm.com>
> ---
> MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.c b/MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.c
> index 5029ddb96adb..12944ac7ea81 100644
> --- a/MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.c
> +++ b/MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.c
> @@ -411,7 +411,7 @@ RegisterVariablePolicy (
> }
>
> // Reallocate and copy the table.
> - NewTable = AllocatePool( NewSize );
> + NewTable = AllocateRuntimePool( NewSize );
> if (NewTable == NULL) {
> return EFI_OUT_OF_RESOURCES;
> }
>
BTW I wouldn't mind if the whitespace gets fixed up here at merge time.
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#68005): https://edk2.groups.io/g/devel/message/68005
Mute This Topic: https://groups.io/mt/78508231/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list