[edk2] [Patch] NetworkPkg: Fix incorrect parameter check in PXE.Mtftp() function.

Fu Siyuan posted 1 patch 6 years, 11 months ago
Failed in applying to current master (apply log)
NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
[edk2] [Patch] NetworkPkg: Fix incorrect parameter check in PXE.Mtftp() function.
Posted by Fu Siyuan 6 years, 11 months ago
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.

Cc: Ye Ting <ting.ye@intel.com>
Cc: Wu Jiaxin <jiaxin.wu@intel.com>
Cc: Wang Fan <fan.wang@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
---
 NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
index 93f3bfa5ba..9068e0686c 100644
--- a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
+++ b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
@@ -855,11 +855,19 @@ EfiPxeBcMtftp (
       (Filename == NULL) ||
       (BufferSize == NULL) ||
       (ServerIp == NULL) ||
-      ((BufferPtr == NULL) && DontUseBuffer) ||
       ((BlockSize != NULL) && (*BlockSize < PXE_MTFTP_DEFAULT_BLOCK_SIZE))) {
     return EFI_INVALID_PARAMETER;
   }
 
+  if (Operation == EFI_PXE_BASE_CODE_TFTP_READ_FILE ||
+      Operation == EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY ||
+      Operation == EFI_PXE_BASE_CODE_MTFTP_READ_FILE ||
+      Operation == EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY) {
+    if (BufferPtr == NULL && !DontUseBuffer) {
+      return EFI_INVALID_PARAMETER;
+    }
+  }
+
   Config    = NULL;
   Status    = EFI_DEVICE_ERROR;
   Private   = PXEBC_PRIVATE_DATA_FROM_PXEBC (This);
-- 
2.13.0.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [Patch] NetworkPkg: Fix incorrect parameter check in PXE.Mtftp() function.
Posted by Wu, Jiaxin 6 years, 11 months ago
Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>


> -----Original Message-----
> From: Fu, Siyuan
> Sent: Thursday, January 11, 2018 5:19 PM
> To: edk2-devel@lists.01.org
> Cc: Ye, Ting <ting.ye@intel.com>; Wu, Jiaxin <jiaxin.wu@intel.com>; Wang,
> Fan <fan.wang@intel.com>
> Subject: [Patch] NetworkPkg: Fix incorrect parameter check in PXE.Mtftp()
> function.
> 
> 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.
> 
> Cc: Ye Ting <ting.ye@intel.com>
> Cc: Wu Jiaxin <jiaxin.wu@intel.com>
> Cc: Wang Fan <fan.wang@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
> ---
>  NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
> b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
> index 93f3bfa5ba..9068e0686c 100644
> --- a/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
> +++ b/NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c
> @@ -855,11 +855,19 @@ EfiPxeBcMtftp (
>        (Filename == NULL) ||
>        (BufferSize == NULL) ||
>        (ServerIp == NULL) ||
> -      ((BufferPtr == NULL) && DontUseBuffer) ||
>        ((BlockSize != NULL) && (*BlockSize <
> PXE_MTFTP_DEFAULT_BLOCK_SIZE))) {
>      return EFI_INVALID_PARAMETER;
>    }
> 
> +  if (Operation == EFI_PXE_BASE_CODE_TFTP_READ_FILE ||
> +      Operation == EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY ||
> +      Operation == EFI_PXE_BASE_CODE_MTFTP_READ_FILE ||
> +      Operation == EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY) {
> +    if (BufferPtr == NULL && !DontUseBuffer) {
> +      return EFI_INVALID_PARAMETER;
> +    }
> +  }
> +
>    Config    = NULL;
>    Status    = EFI_DEVICE_ERROR;
>    Private   = PXEBC_PRIVATE_DATA_FROM_PXEBC (This);
> --
> 2.13.0.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel