Revision: 17887
http://sourceforge.net/p/edk2/code/17887
Author: luobozhang
Date: 2015-07-08 12:17:11 +0000 (Wed, 08 Jul 2015)
Log Message:
-----------
NetworkPkg:Replace unsafe string functions.
Replace unsafe string functions with new added safe string functions.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Zhang Lubo <[email protected]>
Reviewed-by: Fu Siyuan <[email protected]>
Reviewed-by: Qiu Shumin <[email protected]>
Reviewed-by: Jaben Carsey <[email protected]>
Modified Paths:
--------------
trunk/edk2/NetworkPkg/Application/IfConfig6/IfConfig6.c
trunk/edk2/NetworkPkg/Application/IpsecConfig/Indexer.c
trunk/edk2/NetworkPkg/Application/IpsecConfig/PolicyEntryOperation.c
trunk/edk2/NetworkPkg/IScsiDxe/IScsiConfig.c
trunk/edk2/NetworkPkg/IScsiDxe/IScsiDhcp.c
trunk/edk2/NetworkPkg/IScsiDxe/IScsiDhcp6.c
trunk/edk2/NetworkPkg/IScsiDxe/IScsiExtScsiPassThru.c
trunk/edk2/NetworkPkg/Mtftp6Dxe/Mtftp6Support.c
trunk/edk2/NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.c
trunk/edk2/NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.h
trunk/edk2/NetworkPkg/UefiPxeBcDxe/PxeBcSupport.c
trunk/edk2/NetworkPkg/UefiPxeBcDxe/PxeBcSupport.h
Modified: trunk/edk2/NetworkPkg/Application/IfConfig6/IfConfig6.c
===================================================================
--- trunk/edk2/NetworkPkg/Application/IfConfig6/IfConfig6.c 2015-07-08
09:49:41 UTC (rev 17886)
+++ trunk/edk2/NetworkPkg/Application/IfConfig6/IfConfig6.c 2015-07-08
12:17:11 UTC (rev 17887)
@@ -1,7 +1,7 @@
/** @file
The implementation for Shell application IfConfig6.
- Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD
License
@@ -127,16 +127,15 @@
ARG_LIST *ArgList;
ARG_LIST *ArgNode;
- if (*String == L'\0') {
+ if (*String == L'\0' || *String == NULL) {
return NULL;
}
//
// Copy the CONST string to a local copy.
//
- Str = (CHAR16 *) AllocateZeroPool (StrSize (String));
+ Str = AllocateCopyPool (StrSize (String), String);
ASSERT (Str != NULL);
- Str = StrnCpy (Str, String, StrLen (String));
ArgStr = Str;
//
@@ -1717,10 +1716,8 @@
Private->OpCode = IfConfig6OpList;
ValueStr = ShellCommandLineGetValue (ParamPackage, L"-l");
if (ValueStr != NULL) {
- Str = (CHAR16 *) AllocateZeroPool (StrSize (ValueStr));
+ Str = AllocateCopyPool (StrSize (ValueStr), ValueStr);
ASSERT (Str != NULL);
-
- Str = StrnCpy (Str, ValueStr, StrLen (ValueStr));
Private->IfName = Str;
}
}
@@ -1731,10 +1728,8 @@
Private->OpCode = IfConfig6OpClear;
ValueStr = ShellCommandLineGetValue (ParamPackage, L"-r");
if (ValueStr != NULL) {
- Str = (CHAR16 *) AllocateZeroPool (StrSize (ValueStr));
+ Str = AllocateCopyPool (StrSize (ValueStr), ValueStr);
ASSERT (Str != NULL);
-
- Str = StrnCpy (Str, ValueStr, StrLen (ValueStr));
Private->IfName = Str;
}
}
Modified: trunk/edk2/NetworkPkg/Application/IpsecConfig/Indexer.c
===================================================================
--- trunk/edk2/NetworkPkg/Application/IpsecConfig/Indexer.c 2015-07-08
09:49:41 UTC (rev 17886)
+++ trunk/edk2/NetworkPkg/Application/IpsecConfig/Indexer.c 2015-07-08
12:17:11 UTC (rev 17887)
@@ -1,7 +1,7 @@
/** @file
The implementation of construct ENTRY_INDEXER in IpSecConfig application.
- Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD
License
@@ -235,7 +235,7 @@
Indexer->PadId.PeerIdValid = TRUE;
ZeroMem (Indexer->PadId.Id.PeerId, MAX_PEERID_LEN);
- StrnCpy ((CHAR16 *) Indexer->PadId.Id.PeerId, ValueStr, ARRAY_SIZE
(Indexer->PadId.Id.PeerId) - 1);
+ StrnCpyS ((CHAR16 *) Indexer->PadId.Id.PeerId, MAX_PEERID_LEN / sizeof
(CHAR16), ValueStr, MAX_PEERID_LEN / sizeof (CHAR16) - 1);
}
}
Modified: trunk/edk2/NetworkPkg/Application/IpsecConfig/PolicyEntryOperation.c
===================================================================
--- trunk/edk2/NetworkPkg/Application/IpsecConfig/PolicyEntryOperation.c
2015-07-08 09:49:41 UTC (rev 17886)
+++ trunk/edk2/NetworkPkg/Application/IpsecConfig/PolicyEntryOperation.c
2015-07-08 12:17:11 UTC (rev 17887)
@@ -1,7 +1,7 @@
/** @file
The implementation of policy entry operation function in IpSecConfig
application.
- Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD
License
@@ -1104,7 +1104,7 @@
ValueStr = ShellCommandLineGetValue (ParamPackage, L"--peer-id");
if (ValueStr != NULL) {
(*PadId)->PeerIdValid = TRUE;
- StrnCpy ((CHAR16 *) (*PadId)->Id.PeerId, ValueStr, ARRAY_SIZE
((*PadId)->Id.PeerId) - 1);
+ StrnCpyS ((CHAR16 *) (*PadId)->Id.PeerId, MAX_PEERID_LEN / sizeof
(CHAR16), ValueStr, MAX_PEERID_LEN / sizeof (CHAR16) - 1);
*Mask |= PEER_ID;
}
@@ -1399,7 +1399,7 @@
// Process Data
//
if ((Mask & NAME) != 0) {
- AsciiStrCpy ((CHAR8 *) OldData->Name, (CHAR8 *) NewData->Name);
+ AsciiStrCpyS ((CHAR8 *) OldData->Name, MAX_PEERID_LEN, (CHAR8 *)
NewData->Name);
}
if ((Mask & PACKET_FLAG) != 0) {
Modified: trunk/edk2/NetworkPkg/IScsiDxe/IScsiConfig.c
===================================================================
--- trunk/edk2/NetworkPkg/IScsiDxe/IScsiConfig.c 2015-07-08 09:49:41 UTC
(rev 17886)
+++ trunk/edk2/NetworkPkg/IScsiDxe/IScsiConfig.c 2015-07-08 12:17:11 UTC
(rev 17887)
@@ -2393,7 +2393,7 @@
NULL
);
} else {
- AsciiStrCpy (Private->Current->SessionConfigData.TargetName,
IScsiName);
+ AsciiStrCpyS (Private->Current->SessionConfigData.TargetName,
ISCSI_NAME_MAX_SIZE, IScsiName);
}
break;
Modified: trunk/edk2/NetworkPkg/IScsiDxe/IScsiDhcp.c
===================================================================
--- trunk/edk2/NetworkPkg/IScsiDxe/IScsiDhcp.c 2015-07-08 09:49:41 UTC (rev
17886)
+++ trunk/edk2/NetworkPkg/IScsiDxe/IScsiDhcp.c 2015-07-08 12:17:11 UTC (rev
17887)
@@ -175,7 +175,7 @@
goto ON_EXIT;
}
- AsciiStrCpy (ConfigNvData->TargetName, Field->Str);
+ AsciiStrCpyS (ConfigNvData->TargetName, ISCSI_NAME_MAX_SIZE, Field->Str);
ON_EXIT:
Modified: trunk/edk2/NetworkPkg/IScsiDxe/IScsiDhcp6.c
===================================================================
--- trunk/edk2/NetworkPkg/IScsiDxe/IScsiDhcp6.c 2015-07-08 09:49:41 UTC (rev
17886)
+++ trunk/edk2/NetworkPkg/IScsiDxe/IScsiDhcp6.c 2015-07-08 12:17:11 UTC (rev
17887)
@@ -1,7 +1,7 @@
/** @file
iSCSI DHCP6 related configuration routines.
-Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD
License
which accompanies this distribution. The full text of the license may be
found at
@@ -203,7 +203,7 @@
goto ON_EXIT;
}
- AsciiStrCpy (ConfigNvData->TargetName, Field->Str);
+ AsciiStrCpyS (ConfigNvData->TargetName, ISCSI_NAME_MAX_SIZE, Field->Str);
ON_EXIT:
Modified: trunk/edk2/NetworkPkg/IScsiDxe/IScsiExtScsiPassThru.c
===================================================================
--- trunk/edk2/NetworkPkg/IScsiDxe/IScsiExtScsiPassThru.c 2015-07-08
09:49:41 UTC (rev 17886)
+++ trunk/edk2/NetworkPkg/IScsiDxe/IScsiExtScsiPassThru.c 2015-07-08
12:17:11 UTC (rev 17887)
@@ -1,7 +1,7 @@
/** @file
The implementation of EFI_EXT_SCSI_PASS_THRU_PROTOCOL.
-Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD
License
which accompanies this distribution. The full text of the license may be
found at
@@ -273,7 +273,7 @@
CopyMem (&Node->Iscsi.Lun, ConfigNvData->BootLun, sizeof (UINT64));
Node->Iscsi.TargetPortalGroupTag = Session->TargetPortalGroupTag;
- AsciiStrCpy ((CHAR8 *) Node + sizeof (ISCSI_DEVICE_PATH),
ConfigNvData->TargetName);
+ AsciiStrCpyS ((CHAR8 *) Node + sizeof (ISCSI_DEVICE_PATH), AsciiStrLen
(ConfigNvData->TargetName) + 1, ConfigNvData->TargetName);
*DevicePath = (EFI_DEVICE_PATH_PROTOCOL *) Node;
Modified: trunk/edk2/NetworkPkg/Mtftp6Dxe/Mtftp6Support.c
===================================================================
--- trunk/edk2/NetworkPkg/Mtftp6Dxe/Mtftp6Support.c 2015-07-08 09:49:41 UTC
(rev 17886)
+++ trunk/edk2/NetworkPkg/Mtftp6Dxe/Mtftp6Support.c 2015-07-08 12:17:11 UTC
(rev 17887)
@@ -1,7 +1,7 @@
/** @file
Mtftp6 support functions implementation.
- Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD
License
@@ -512,19 +512,22 @@
Packet->OpCode = HTONS (Operation);
Cur = Packet->Rrq.Filename;
- Cur = (UINT8 *) AsciiStrCpy ((CHAR8 *) Cur, (CHAR8 *)
Token->Filename);
+ Cur = (UINT8 *) AsciiStrCpyS ((CHAR8 *) Cur, Len - 2, (CHAR8 *)
Token->Filename);
Cur += AsciiStrLen ((CHAR8 *) Token->Filename) + 1;
- Cur = (UINT8 *) AsciiStrCpy ((CHAR8 *) Cur, (CHAR8 *) Mode);
+ Cur = (UINT8 *) AsciiStrCpyS ((CHAR8 *) Cur, Len - 2 -
(AsciiStrLen ((CHAR8 *) Token->Filename) + 1), (CHAR8 *) Mode);
Cur += AsciiStrLen ((CHAR8 *) Mode) + 1;
+ Len -= ((UINT32) AsciiStrLen ((CHAR8 *) Token->Filename) + (UINT32)
AsciiStrLen ((CHAR8 *) Mode) + 4);
//
// Copy all the extension options into the packet.
//
for (Index = 0; Index < Token->OptionCount; ++Index) {
- Cur = (UINT8 *) AsciiStrCpy ((CHAR8 *) Cur, (CHAR8 *)
Options[Index].OptionStr);
+ Cur = (UINT8 *) AsciiStrCpyS ((CHAR8 *) Cur, Len, (CHAR8 *)
Options[Index].OptionStr);
Cur += AsciiStrLen ((CHAR8 *) Options[Index].OptionStr) + 1;
- Cur = (UINT8 *) AsciiStrCpy ((CHAR8 *) Cur, (CHAR8 *)
Options[Index].ValueStr);
+ Len -= (UINT32)(AsciiStrLen ((CHAR8 *) Options[Index].OptionStr) + 1);
+ Cur = (UINT8 *) AsciiStrCpyS ((CHAR8 *) Cur, Len, (CHAR8 *)
Options[Index].ValueStr);
Cur += AsciiStrLen ((CHAR8 *) (CHAR8 *) Options[Index].ValueStr) + 1;
+ Len -= (UINT32)(AsciiStrLen ((CHAR8 *) Options[Index].ValueStr) + 1);
}
//
@@ -584,7 +587,7 @@
TftpError->OpCode = HTONS (EFI_MTFTP6_OPCODE_ERROR);
TftpError->Error.ErrorCode = HTONS (ErrCode);
- AsciiStrCpy ((CHAR8 *) TftpError->Error.ErrorMessage, (CHAR8 *) ErrInfo);
+ AsciiStrCpyS ((CHAR8 *) TftpError->Error.ErrorMessage, sizeof
(TftpError->Error.ErrorMessage) / sizeof (TftpError->Error.ErrorMessage[0]),
(CHAR8 *) ErrInfo);
//
// Save the packet buf for retransmit
Modified: trunk/edk2/NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.c
===================================================================
--- trunk/edk2/NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.c 2015-07-08 09:49:41 UTC
(rev 17886)
+++ trunk/edk2/NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.c 2015-07-08 12:17:11 UTC
(rev 17887)
@@ -1,7 +1,7 @@
/** @file
Functions implementation related with Mtftp for UefiPxeBc Driver.
- Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD
License
@@ -64,10 +64,11 @@
//
Private->Mode.TftpErrorReceived = TRUE;
Private->Mode.TftpError.ErrorCode = (UINT8) Packet->Error.ErrorCode;
- AsciiStrnCpy (
+ AsciiStrnCpyS (
Private->Mode.TftpError.ErrorString,
+ PXE_MTFTP_ERROR_STRING_LENGTH,
(CHAR8 *) Packet->Error.ErrorMessage,
- PXE_MTFTP_ERROR_STRING_LENGTH
+ PXE_MTFTP_ERROR_STRING_LENGTH - 1
);
Private->Mode.TftpError.ErrorString[PXE_MTFTP_ERROR_STRING_LENGTH - 1] =
'\0';
}
@@ -151,13 +152,13 @@
// Build the required options for get info.
//
ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_TSIZE_INDEX];
- PxeBcUintnToAscDec (0, OptBuf);
+ PxeBcUintnToAscDec (0, OptBuf, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);
ReqOpt[0].ValueStr = OptBuf;
if (BlockSize != NULL) {
ReqOpt[1].OptionStr = (UINT8 *)
mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
ReqOpt[1].ValueStr = (UINT8 *) (ReqOpt[0].ValueStr + AsciiStrLen ((CHAR8
*) ReqOpt[0].ValueStr) + 1);
- PxeBcUintnToAscDec (*BlockSize, ReqOpt[1].ValueStr);
+ PxeBcUintnToAscDec (*BlockSize, ReqOpt[1].ValueStr,
PXE_MTFTP_OPTBUF_MAXNUM_INDEX - (AsciiStrLen ((CHAR8 *) ReqOpt[0].ValueStr) +
1));
OptCnt++;
}
@@ -178,10 +179,11 @@
//
Private->Mode.TftpErrorReceived = TRUE;
Private->Mode.TftpError.ErrorCode = (UINT8) Packet->Error.ErrorCode;
- AsciiStrnCpy (
+ AsciiStrnCpyS (
Private->Mode.TftpError.ErrorString,
+ PXE_MTFTP_ERROR_STRING_LENGTH,
(CHAR8 *) Packet->Error.ErrorMessage,
- PXE_MTFTP_ERROR_STRING_LENGTH
+ PXE_MTFTP_ERROR_STRING_LENGTH - 1
);
Private->Mode.TftpError.ErrorString[PXE_MTFTP_ERROR_STRING_LENGTH - 1] =
'\0';
}
@@ -273,7 +275,7 @@
if (BlockSize != NULL) {
ReqOpt[0].OptionStr = (UINT8 *)
mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
ReqOpt[0].ValueStr = OptBuf;
- PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr);
+ PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr,
PXE_MTFTP_OPTBUF_MAXNUM_INDEX);
OptCnt++;
}
@@ -356,7 +358,7 @@
if (BlockSize != NULL) {
ReqOpt[0].OptionStr = (UINT8 *)
mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
ReqOpt[0].ValueStr = OptBuf;
- PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr);
+ PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr,
PXE_MTFTP_OPTBUF_MAXNUM_INDEX);
OptCnt++;
}
@@ -431,7 +433,7 @@
if (BlockSize != NULL) {
ReqOpt[0].OptionStr = (UINT8 *)
mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
ReqOpt[0].ValueStr = OptBuf;
- PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr);
+ PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr,
PXE_MTFTP_OPTBUF_MAXNUM_INDEX);
OptCnt++;
}
@@ -508,10 +510,11 @@
//
Private->Mode.TftpErrorReceived = TRUE;
Private->Mode.TftpError.ErrorCode = (UINT8) Packet->Error.ErrorCode;
- AsciiStrnCpy (
+ AsciiStrnCpyS (
Private->Mode.TftpError.ErrorString,
+ PXE_MTFTP_ERROR_STRING_LENGTH,
(CHAR8 *) Packet->Error.ErrorMessage,
- PXE_MTFTP_ERROR_STRING_LENGTH
+ PXE_MTFTP_ERROR_STRING_LENGTH - 1
);
Private->Mode.TftpError.ErrorString[PXE_MTFTP_ERROR_STRING_LENGTH - 1] =
'\0';
}
@@ -595,13 +598,13 @@
// Build the required options for get info.
//
ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_TSIZE_INDEX];
- PxeBcUintnToAscDec (0, OptBuf);
+ PxeBcUintnToAscDec (0, OptBuf, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);
ReqOpt[0].ValueStr = OptBuf;
if (BlockSize != NULL) {
ReqOpt[1].OptionStr = (UINT8 *)
mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
ReqOpt[1].ValueStr = (UINT8 *) (ReqOpt[0].ValueStr + AsciiStrLen ((CHAR8
*) ReqOpt[0].ValueStr) + 1);
- PxeBcUintnToAscDec (*BlockSize, ReqOpt[1].ValueStr);
+ PxeBcUintnToAscDec (*BlockSize, ReqOpt[1].ValueStr,
PXE_MTFTP_OPTBUF_MAXNUM_INDEX - (AsciiStrLen ((CHAR8 *) ReqOpt[0].ValueStr) +
1));
OptCnt++;
}
@@ -622,10 +625,11 @@
//
Private->Mode.TftpErrorReceived = TRUE;
Private->Mode.TftpError.ErrorCode = (UINT8) Packet->Error.ErrorCode;
- AsciiStrnCpy (
+ AsciiStrnCpyS (
Private->Mode.TftpError.ErrorString,
+ PXE_MTFTP_ERROR_STRING_LENGTH,
(CHAR8 *) Packet->Error.ErrorMessage,
- PXE_MTFTP_ERROR_STRING_LENGTH
+ PXE_MTFTP_ERROR_STRING_LENGTH - 1
);
Private->Mode.TftpError.ErrorString[PXE_MTFTP_ERROR_STRING_LENGTH - 1] =
'\0';
}
@@ -717,7 +721,7 @@
if (BlockSize != NULL) {
ReqOpt[0].OptionStr = (UINT8 *)
mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
ReqOpt[0].ValueStr = OptBuf;
- PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr);
+ PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr,
PXE_MTFTP_OPTBUF_MAXNUM_INDEX);
OptCnt++;
}
@@ -800,7 +804,7 @@
if (BlockSize != NULL) {
ReqOpt[0].OptionStr = (UINT8 *)
mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
ReqOpt[0].ValueStr = OptBuf;
- PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr);
+ PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr,
PXE_MTFTP_OPTBUF_MAXNUM_INDEX);
OptCnt++;
}
@@ -875,7 +879,7 @@
if (BlockSize != NULL) {
ReqOpt[0].OptionStr = (UINT8 *)
mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];
ReqOpt[0].ValueStr = OptBuf;
- PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr);
+ PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr,
PXE_MTFTP_OPTBUF_MAXNUM_INDEX);
OptCnt++;
}
Modified: trunk/edk2/NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.h
===================================================================
--- trunk/edk2/NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.h 2015-07-08 09:49:41 UTC
(rev 17886)
+++ trunk/edk2/NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.h 2015-07-08 12:17:11 UTC
(rev 17887)
@@ -1,7 +1,7 @@
/** @file
Functions declaration related with Mtftp for UefiPxeBc Driver.
- Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD
License
@@ -21,6 +21,7 @@
#define PXE_MTFTP_OPTION_TSIZE_INDEX 2
#define PXE_MTFTP_OPTION_MULTICAST_INDEX 3
#define PXE_MTFTP_OPTION_MAXIMUM_INDEX 4
+#define PXE_MTFTP_OPTBUF_MAXNUM_INDEX 128
#define PXE_MTFTP_ERROR_STRING_LENGTH 127 // refer to definition of
struct EFI_PXE_BASE_CODE_TFTP_ERROR.
#define PXE_MTFTP_DEFAULT_BLOCK_SIZE 512 // refer to rfc-1350.
Modified: trunk/edk2/NetworkPkg/UefiPxeBcDxe/PxeBcSupport.c
===================================================================
--- trunk/edk2/NetworkPkg/UefiPxeBcDxe/PxeBcSupport.c 2015-07-08 09:49:41 UTC
(rev 17886)
+++ trunk/edk2/NetworkPkg/UefiPxeBcDxe/PxeBcSupport.c 2015-07-08 12:17:11 UTC
(rev 17887)
@@ -1,7 +1,7 @@
/** @file
Support functions implementation for UefiPxeBc Driver.
- Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD
License
@@ -1392,6 +1392,7 @@
@param[in] Number Numeric value to be converted.
@param[in] Buffer The pointer to the buffer for ASCII string.
+ @param[in] BufferSize The maxsize of the buffer.
@return Length The actual length of the ASCII string.
@@ -1399,7 +1400,8 @@
UINTN
PxeBcUintnToAscDec (
IN UINTN Number,
- IN UINT8 *Buffer
+ IN UINT8 *Buffer,
+ IN UINTN BufferSize
)
{
UINTN Index;
@@ -1415,7 +1417,7 @@
Number = (UINTN) (Number / 10);
} while (Number != 0);
- AsciiStrCpy ((CHAR8 *) Buffer, &TempStr[Index]);
+ AsciiStrCpyS ((CHAR8 *) Buffer, BufferSize, &TempStr[Index]);
Length = AsciiStrLen ((CHAR8 *) Buffer);
Modified: trunk/edk2/NetworkPkg/UefiPxeBcDxe/PxeBcSupport.h
===================================================================
--- trunk/edk2/NetworkPkg/UefiPxeBcDxe/PxeBcSupport.h 2015-07-08 09:49:41 UTC
(rev 17886)
+++ trunk/edk2/NetworkPkg/UefiPxeBcDxe/PxeBcSupport.h 2015-07-08 12:17:11 UTC
(rev 17887)
@@ -448,14 +448,16 @@
@param[in] Number Numeric value to be converted.
@param[in] Buffer Pointer to the buffer for ASCII string.
-
+ @param[in] BufferSize The maxsize of the buffer.
+
@return Length The actual length of the ASCII string.
**/
UINTN
PxeBcUintnToAscDec (
IN UINTN Number,
- IN UINT8 *Buffer
+ IN UINT8 *Buffer,
+ IN UINTN BufferSize
);
/**
------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits