According to UEFI spec, the PXE.Mtftp() should return invalid parameter if the
BufferPtr parameter was NULL and the DontUseBuffer parameter was FALSE.
The DontUseBuffer is only used when perform MTFTP/TFTP read operation.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
(Filename == NULL) ||\r
(BufferSize == NULL) ||\r
(ServerIp == NULL) ||\r
- ((BufferPtr == NULL) && DontUseBuffer) ||\r
((BlockSize != NULL) && (*BlockSize < PXE_MTFTP_DEFAULT_BLOCK_SIZE))) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
+ if (Operation == EFI_PXE_BASE_CODE_TFTP_READ_FILE ||\r
+ Operation == EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY ||\r
+ Operation == EFI_PXE_BASE_CODE_MTFTP_READ_FILE ||\r
+ Operation == EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY) {\r
+ if (BufferPtr == NULL && !DontUseBuffer) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+ }\r
+\r
Config = NULL;\r
Status = EFI_DEVICE_ERROR;\r
Private = PXEBC_PRIVATE_DATA_FROM_PXEBC (This);\r