]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/UefiPxeBcDxe/PxeBcMtftp.c
NetworkPkg:Replace unsafe string functions.
[mirror_edk2.git] / NetworkPkg / UefiPxeBcDxe / PxeBcMtftp.c
index 09196c7ac6579e473067287412c12f935ffc63fd..270190d42e4b75f6bbc1c34bf1e955d775501ef1 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Functions implementation related with Mtftp for UefiPxeBc Driver.\r
 \r
-  Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
@@ -64,10 +64,11 @@ PxeBcMtftp6CheckPacket (
     //\r
     Private->Mode.TftpErrorReceived   = TRUE;\r
     Private->Mode.TftpError.ErrorCode = (UINT8) Packet->Error.ErrorCode;\r
-    AsciiStrnCpy (\r
+    AsciiStrnCpyS (\r
       Private->Mode.TftpError.ErrorString,\r
+      PXE_MTFTP_ERROR_STRING_LENGTH,\r
       (CHAR8 *) Packet->Error.ErrorMessage,\r
-      PXE_MTFTP_ERROR_STRING_LENGTH\r
+      PXE_MTFTP_ERROR_STRING_LENGTH - 1\r
       );\r
     Private->Mode.TftpError.ErrorString[PXE_MTFTP_ERROR_STRING_LENGTH - 1] = '\0';\r
   }\r
@@ -151,13 +152,13 @@ PxeBcMtftp6GetFileSize (
   // Build the required options for get info.\r
   //\r
   ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_TSIZE_INDEX];\r
-  PxeBcUintnToAscDec (0, OptBuf);\r
+  PxeBcUintnToAscDec (0, OptBuf, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);\r
   ReqOpt[0].ValueStr  = OptBuf;\r
 \r
   if (BlockSize != NULL) {\r
     ReqOpt[1].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];\r
     ReqOpt[1].ValueStr  = (UINT8 *) (ReqOpt[0].ValueStr + AsciiStrLen ((CHAR8 *) ReqOpt[0].ValueStr) + 1);\r
-    PxeBcUintnToAscDec (*BlockSize, ReqOpt[1].ValueStr);\r
+    PxeBcUintnToAscDec (*BlockSize, ReqOpt[1].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX - (AsciiStrLen ((CHAR8 *) ReqOpt[0].ValueStr) + 1));\r
     OptCnt++;\r
   }\r
 \r
@@ -178,10 +179,11 @@ PxeBcMtftp6GetFileSize (
       //\r
       Private->Mode.TftpErrorReceived   = TRUE;\r
       Private->Mode.TftpError.ErrorCode = (UINT8) Packet->Error.ErrorCode;\r
-      AsciiStrnCpy (\r
+      AsciiStrnCpyS (\r
         Private->Mode.TftpError.ErrorString,\r
+        PXE_MTFTP_ERROR_STRING_LENGTH,\r
         (CHAR8 *) Packet->Error.ErrorMessage,\r
-        PXE_MTFTP_ERROR_STRING_LENGTH\r
+        PXE_MTFTP_ERROR_STRING_LENGTH - 1\r
         );\r
       Private->Mode.TftpError.ErrorString[PXE_MTFTP_ERROR_STRING_LENGTH - 1] = '\0';\r
     }\r
@@ -273,7 +275,7 @@ PxeBcMtftp6ReadFile (
   if (BlockSize != NULL) {\r
     ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];\r
     ReqOpt[0].ValueStr  = OptBuf;\r
-    PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr);\r
+    PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);\r
     OptCnt++;\r
   }\r
 \r
@@ -356,7 +358,7 @@ PxeBcMtftp6WriteFile (
   if (BlockSize != NULL) {\r
     ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];\r
     ReqOpt[0].ValueStr  = OptBuf;\r
-    PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr);\r
+    PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);\r
     OptCnt++;\r
   }\r
 \r
@@ -431,7 +433,7 @@ PxeBcMtftp6ReadDirectory (
   if (BlockSize != NULL) {\r
     ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];\r
     ReqOpt[0].ValueStr  = OptBuf;\r
-    PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr);\r
+    PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);\r
     OptCnt++;\r
   }\r
 \r
@@ -508,10 +510,11 @@ PxeBcMtftp4CheckPacket (
     //\r
     Private->Mode.TftpErrorReceived   = TRUE;\r
     Private->Mode.TftpError.ErrorCode = (UINT8) Packet->Error.ErrorCode;\r
-    AsciiStrnCpy (\r
+    AsciiStrnCpyS (\r
       Private->Mode.TftpError.ErrorString,\r
+      PXE_MTFTP_ERROR_STRING_LENGTH,\r
       (CHAR8 *) Packet->Error.ErrorMessage,\r
-      PXE_MTFTP_ERROR_STRING_LENGTH\r
+      PXE_MTFTP_ERROR_STRING_LENGTH - 1\r
       );\r
     Private->Mode.TftpError.ErrorString[PXE_MTFTP_ERROR_STRING_LENGTH - 1] = '\0';\r
   }\r
@@ -595,13 +598,13 @@ PxeBcMtftp4GetFileSize (
   // Build the required options for get info.\r
   //\r
   ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_TSIZE_INDEX];\r
-  PxeBcUintnToAscDec (0, OptBuf);\r
+  PxeBcUintnToAscDec (0, OptBuf, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);\r
   ReqOpt[0].ValueStr  = OptBuf;\r
 \r
   if (BlockSize != NULL) {\r
     ReqOpt[1].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];\r
     ReqOpt[1].ValueStr  = (UINT8 *) (ReqOpt[0].ValueStr + AsciiStrLen ((CHAR8 *) ReqOpt[0].ValueStr) + 1);\r
-    PxeBcUintnToAscDec (*BlockSize, ReqOpt[1].ValueStr);\r
+    PxeBcUintnToAscDec (*BlockSize, ReqOpt[1].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX - (AsciiStrLen ((CHAR8 *) ReqOpt[0].ValueStr) + 1));\r
     OptCnt++;\r
   }\r
 \r
@@ -622,10 +625,11 @@ PxeBcMtftp4GetFileSize (
       //\r
       Private->Mode.TftpErrorReceived   = TRUE;\r
       Private->Mode.TftpError.ErrorCode = (UINT8) Packet->Error.ErrorCode;\r
-      AsciiStrnCpy (\r
+      AsciiStrnCpyS (\r
         Private->Mode.TftpError.ErrorString,\r
+        PXE_MTFTP_ERROR_STRING_LENGTH,\r
         (CHAR8 *) Packet->Error.ErrorMessage,\r
-        PXE_MTFTP_ERROR_STRING_LENGTH\r
+        PXE_MTFTP_ERROR_STRING_LENGTH - 1\r
         );\r
       Private->Mode.TftpError.ErrorString[PXE_MTFTP_ERROR_STRING_LENGTH - 1] = '\0';\r
     }\r
@@ -717,7 +721,7 @@ PxeBcMtftp4ReadFile (
   if (BlockSize != NULL) {\r
     ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];\r
     ReqOpt[0].ValueStr  = OptBuf;\r
-    PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr);\r
+    PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);\r
     OptCnt++;\r
   }\r
 \r
@@ -800,7 +804,7 @@ PxeBcMtftp4WriteFile (
   if (BlockSize != NULL) {\r
     ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];\r
     ReqOpt[0].ValueStr  = OptBuf;\r
-    PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr);\r
+    PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);\r
     OptCnt++;\r
   }\r
 \r
@@ -875,7 +879,7 @@ PxeBcMtftp4ReadDirectory (
   if (BlockSize != NULL) {\r
     ReqOpt[0].OptionStr = (UINT8 *) mMtftpOptions[PXE_MTFTP_OPTION_BLKSIZE_INDEX];\r
     ReqOpt[0].ValueStr  = OptBuf;\r
-    PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr);\r
+    PxeBcUintnToAscDec (*BlockSize, ReqOpt[0].ValueStr, PXE_MTFTP_OPTBUF_MAXNUM_INDEX);\r
     OptCnt++;\r
   }\r
 \r