https://bugzilla.tianocore.org/show_bug.cgi?id=278
Zero memory address or zero number pages are invalid to SmmFreePages().
Cc: Star Zeng <star.zeng@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
@param[in] AddRegion If this memory is new added region.\r
\r
@retval EFI_NOT_FOUND Could not find the entry that covers the range.\r
@param[in] AddRegion If this memory is new added region.\r
\r
@retval EFI_NOT_FOUND Could not find the entry that covers the range.\r
- @retval EFI_INVALID_PARAMETER Address not aligned.\r
+ @retval EFI_INVALID_PARAMETER Address not aligned, Address is zero or NumberOfPages is zero.\r
@return EFI_SUCCESS Pages successfully freed.\r
\r
**/\r
@return EFI_SUCCESS Pages successfully freed.\r
\r
**/\r
LIST_ENTRY *Node;\r
FREE_PAGE_LIST *Pages;\r
\r
LIST_ENTRY *Node;\r
FREE_PAGE_LIST *Pages;\r
\r
- if ((Memory & EFI_PAGE_MASK) != 0) {\r
+ if (((Memory & EFI_PAGE_MASK) != 0) || (Memory == 0) || (NumberOfPages == 0)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
@param[in] NumberOfPages The number of pages to free.\r
\r
@retval EFI_NOT_FOUND Could not find the entry that covers the range.\r
@param[in] NumberOfPages The number of pages to free.\r
\r
@retval EFI_NOT_FOUND Could not find the entry that covers the range.\r
- @retval EFI_INVALID_PARAMETER Address not aligned.\r
+ @retval EFI_INVALID_PARAMETER Address not aligned, Address is zero or NumberOfPages is zero.\r
@return EFI_SUCCESS Pages successfully freed.\r
\r
**/\r
@return EFI_SUCCESS Pages successfully freed.\r
\r
**/\r
@param NumberOfPages The number of pages to free.\r
\r
@retval EFI_NOT_FOUND Could not find the entry that covers the range.\r
@param NumberOfPages The number of pages to free.\r
\r
@retval EFI_NOT_FOUND Could not find the entry that covers the range.\r
- @retval EFI_INVALID_PARAMETER Address not aligned.\r
+ @retval EFI_INVALID_PARAMETER Address not aligned, Address is zero or NumberOfPages is zero.\r
@return EFI_SUCCESS Pages successfully freed.\r
\r
**/\r
@return EFI_SUCCESS Pages successfully freed.\r
\r
**/\r
@param NumberOfPages The number of pages to free\r
\r
@retval EFI_NOT_FOUND Could not find the entry that covers the range\r
@param NumberOfPages The number of pages to free\r
\r
@retval EFI_NOT_FOUND Could not find the entry that covers the range\r
- @retval EFI_INVALID_PARAMETER Address not aligned\r
+ @retval EFI_INVALID_PARAMETER Address not aligned, Address is zero or NumberOfPages is zero.\r
@return EFI_SUCCESS Pages successfully freed.\r
\r
**/\r
@return EFI_SUCCESS Pages successfully freed.\r
\r
**/\r
@param NumberOfPages The number of pages to free\r
\r
@retval EFI_NOT_FOUND Could not find the entry that covers the range\r
@param NumberOfPages The number of pages to free\r
\r
@retval EFI_NOT_FOUND Could not find the entry that covers the range\r
- @retval EFI_INVALID_PARAMETER Address not aligned\r
+ @retval EFI_INVALID_PARAMETER Address not aligned, Address is zero or NumberOfPages is zero.\r
@return EFI_SUCCESS Pages successfully freed.\r
\r
**/\r
@return EFI_SUCCESS Pages successfully freed.\r
\r
**/\r