summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2022-01-21 20:58:48 +0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2022-02-07 05:31:17 +0000
commitf78b937c95ddc4f7a29e41fee98e96076828a108 (patch)
tree4683734f86ed4cbfa5041bd469c7c4797883542f /MdeModulePkg
parentd4ac53aa91b8a3602166c6adcb9ba8678e0ae969 (diff)
downloadedk2-f78b937c95ddc4f7a29e41fee98e96076828a108.tar.gz
edk2-f78b937c95ddc4f7a29e41fee98e96076828a108.tar.bz2
edk2-f78b937c95ddc4f7a29e41fee98e96076828a108.zip
MdeModulePkg/RuntimeDxe: clear mVirtualMapMaxIndex
When setting mVirtualMap to NULL also set mVirtualMapMaxIndex to 0. Without that RuntimeDriverConvertPointer() will go search the ZeroPage for EFI_MEMORY_DESCRIPTOR entries. In case mVirtualMapMaxIndex happens to be small small enough that'll go unnoticed, the search will not find anything and EFI_NOT_FOUND will be returned. In case mVirtualMapMaxIndex is big enough the search will reach the end of the ZeroPage and trigger a page fault. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Diffstat (limited to 'MdeModulePkg')
-rw-r--r--MdeModulePkg/Core/RuntimeDxe/Runtime.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/MdeModulePkg/Core/RuntimeDxe/Runtime.c b/MdeModulePkg/Core/RuntimeDxe/Runtime.c
index 2a54140873..de8f2bfce0 100644
--- a/MdeModulePkg/Core/RuntimeDxe/Runtime.c
+++ b/MdeModulePkg/Core/RuntimeDxe/Runtime.c
@@ -365,7 +365,8 @@ RuntimeDriverSetVirtualAddressMap (
//
// mVirtualMap is only valid during SetVirtualAddressMap() call
//
- mVirtualMap = NULL;
+ mVirtualMap = NULL;
+ mVirtualMapMaxIndex = 0;
return EFI_SUCCESS;
}