]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BasePrintLib/PrintLibInternal.h
BasePrintLib: Fix Buffer Overflow issue.
[mirror_edk2.git] / MdePkg / Library / BasePrintLib / PrintLibInternal.h
index 0f7bebff454fdc9b0823d239302c6e15be048f91..e0928b8c8035515d647e7b9d5c4bc184476f775e 100644 (file)
@@ -14,6 +14,9 @@
 \r
 **/\r
 \r
+#ifndef __PRINT_LIB_INTERNAL_H\r
+#define __PRINT_LIB_INTERNAL_H\r
+\r
 //\r
 // Print primitives\r
 //\r
 #define PRECISION         0x800\r
 #define ARGUMENT_REVERSED 0x1000\r
 \r
-///\r
-/// Define the maximum number of characters that are required to encode\r
-/// a decimal, hexidecimal, GUID, or TIME value with a Nll terminator.\r
-///   Maximum Length Decimal String     = 28    "-9,223,372,036,854,775,808"\r
-///   Maximum Length Hexidecimal String = 17    "FFFFFFFFFFFFFFFF"\r
-///   Maximum Length GUID               = 37    "00000000-0000-0000-0000-000000000000"\r
-///   Maximum Length TIME               = 18    "12/12/2006  12:12"\r
-///\r
-#define MAXIMUM_VALUE_CHARACTERS  38\r
-\r
 //\r
 // Record date and time information\r
 //\r
@@ -92,6 +85,8 @@ BasePrintLibSPrint (
   Internal function that places ASCII or Unicode character into the Buffer.\r
 \r
   @param  Buffer      Buffer to place the Unicode or ASCII string.\r
+  @param  EndBuffer   The end of the input Buffer. No characters will be\r
+                      placed after that. \r
   @param  Length      Count of character to be placed into Buffer.\r
   @param  Character   Character to be placed into Buffer.\r
   @param  Increment   Character increment in Buffer.\r
@@ -102,6 +97,7 @@ BasePrintLibSPrint (
 CHAR8 *\r
 BasePrintLibFillBuffer (\r
   CHAR8   *Buffer,\r
+  CHAR8   *EndBuffer,\r
   INTN    Length,\r
   UINTN   Character,\r
   INTN    Increment\r
@@ -158,7 +154,8 @@ BasePrintLibValueToString (
   @param  Flags     The bitmask of flags that specify left justification, zero pad,\r
                     and commas.\r
   @param  Value     The 64-bit signed value to convert to a string.\r
-  @param  Width            The maximum number of characters to place in Buffer.\r
+  @param  Width     The maximum number of characters to place in Buffer, not including\r
+                    the Null-terminator.\r
   @param  Increment Character increment in Buffer.\r
   \r
   @return Total number of characters required to perform the conversion.\r
@@ -172,3 +169,5 @@ BasePrintLibConvertValueToString (
   IN UINTN       Width,\r
   IN UINTN       Increment\r
   );\r
+\r
+#endif\r