Add check for input Length in PageTableMap (). Return
RETURN_SUCCESS when input Length is 0.
Signed-off-by: Dun Tan <dun.tan@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Tested-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
/** @file\r
Public include file for PageTableLib library.\r
\r
- Copyright (c) 2022, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2022 - 2023, Intel Corporation. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
@retval RETURN_BUFFER_TOO_SMALL The buffer is too small for page table creation/updating.\r
BufferSize is updated to indicate the expected buffer size.\r
Caller may still get RETURN_BUFFER_TOO_SMALL with the new BufferSize.\r
- @retval RETURN_SUCCESS PageTable is created/updated successfully.\r
+ @retval RETURN_SUCCESS PageTable is created/updated successfully or the input Length is 0.\r
**/\r
RETURN_STATUS\r
EFIAPI\r
@retval RETURN_BUFFER_TOO_SMALL The buffer is too small for page table creation/updating.\r
BufferSize is updated to indicate the expected buffer size.\r
Caller may still get RETURN_BUFFER_TOO_SMALL with the new BufferSize.\r
- @retval RETURN_SUCCESS PageTable is created/updated successfully.\r
+ @retval RETURN_SUCCESS PageTable is created/updated successfully or the input Length is 0.\r
**/\r
RETURN_STATUS\r
EFIAPI\r
IA32_PAGE_LEVEL MaxLeafLevel;\r
IA32_MAP_ATTRIBUTE ParentAttribute;\r
\r
+ if (Length == 0) {\r
+ return RETURN_SUCCESS;\r
+ }\r
+\r
if ((PagingMode == Paging32bit) || (PagingMode == PagingPae) || (PagingMode >= PagingModeMax)) {\r
//\r
// 32bit paging is never supported.\r