//\r
u = Buffer;\r
u->ReqStr.OpCode = HTONS (Req);\r
- TotalLen = sizeof (Mode) + sizeof (u->ReqStr.OpCode) + (Len = 1 + AsciiStrLen (FilenamePtr));\r
+ TotalLen = sizeof (Mode) + sizeof (u->ReqStr.OpCode) + (Len = 1 + AsciiStrLen ((CHAR8 *) FilenamePtr));\r
\r
CopyMem (u->ReqStr.FileName, FilenamePtr, Len);\r
Ptr = (UINT8 *) (u->ReqStr.FileName + Len);\r
CopyMem (Ptr, BlockSizeOp, sizeof (BlockSizeOp));\r
UtoA10 (*PacketSizePtr, Ptr + sizeof (BlockSizeOp));\r
\r
- TotalLen += (Len = 1 + AsciiStrLen (Ptr + sizeof (BlockSizeOp)) + sizeof (BlockSizeOp));\r
+ TotalLen += (Len = 1 + AsciiStrLen ((CHAR8 *) (Ptr + sizeof (BlockSizeOp))) + sizeof (BlockSizeOp));\r
\r
Ptr += Len;\r
}\r
//\r
do {\r
if ((SaveReplyLen = ReplyLen) > BufferSize) {\r
- SaveReplyLen = (UINTN) BufferSize;\r
+ SaveReplyLen = 0;\r
}\r
\r
/* %%TBD - add big block number support */\r
(UINT16) ReplyLen,\r
BufferSizePtr,\r
Offset,\r
- (INT8 *) &u,\r
+ (UINT8 *) &u,\r
ServerIpPtr,\r
&ServerReplyPort,\r
&Private->EfiBc.Mode->StationIp,\r
*(PacketSizePtr = &PacketSize) = MAX_TFTP_PKT_SIZE;\r
}\r
\r
- if (*PacketSizePtr > *BufferSizePtr) {\r
- *PacketSizePtr = (UINTN) *BufferSizePtr;\r
+ if ((*PacketSizePtr > *BufferSizePtr) &&\r
+ (Operation != EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE) &&\r
+ (Operation != EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE)) {\r
+ *PacketSizePtr = MAX ((UINTN) *BufferSizePtr, MIN_TFTP_PKT_SIZE);\r
}\r
\r
if (*PacketSizePtr < MIN_TFTP_PKT_SIZE) {\r
Status = gBS->AllocatePool (\r
EfiBootServicesData,\r
BUFFER_ALLOCATE_SIZE,\r
- &BufferPtrLocal\r
+ (VOID **) &BufferPtrLocal\r
);\r
\r
if (EFI_ERROR (Status) || BufferPtrLocal == NULL) {\r