summaryrefslogtreecommitdiffstats
path: root/MdePkg/Library/BasePrintLib
Commit message (Collapse)AuthorAgeFilesLines
* MdePkg/BasePrintLib: Avoid reading content beyond the format stringHao Wu2017-06-011-8/+8
| | | | | | | | | | | | | | | | | | | | | https://bugzilla.tianocore.org/show_bug.cgi?id=567 In function BasePrintLibSPrintMarker(), when processing ASCII format strings, if the format string walker pointer 'Format' is pointing at the end of the format string (i.e. '\0'), the following expression: *(Format + 1) will read an undefined value. Though this value won't affect the functionality, since it will be masked by variable 'FormatMask': (*(Format + 1) << 8)) & FormatMask (FormatMask is 0xff for ASCII format string) This commit adds additional logic to avoid reading undefined content. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* MdePkg/BasePrintLib: Refine the comment for AsciiValueToStringS APIHao Wu2017-03-131-2/+1
| | | | | | | | | | | | The commit refines the comment description for PrintLib API AsciiValueToStringS. This API will not ASSERT when the input/output parameter 'Buffer' is not aligned on a 16-bit boundary. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* MdePkg/BasePrintLib: Add deprecated flag for APIs [A|U]ValueToStringHao Wu2017-03-021-0/+12
| | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* MdePkg/BasePrintLib: Add safe print functions [A|U]ValueToStringSHao Wu2017-02-213-0/+393
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add the following 2 APIs: UnicodeValueToStringS AsciiValueToStringS These safe version APIs are used to enhance their counterpart (APIs without trailing 'S' in function names). They perform checks to the input parameters and will return relative status to reflect the check result. Return RETURN_INVALID_PARAMETER when: 1). The input Buffer is NULL. 2). The input BufferSize is greater than (PcdMaximumUnicodeStringLength * sizeof (CHAR16) + 1) for UnicodeValueToStringS or greater than PcdMaximumAsciiStringLength for AsciiValueToStringS. 3). The input Flags is not set properly. 4). The input Width is not smaller than MAXIMUM_VALUE_CHARACTERS. Return RETURN_BUFFER_TOO_SMALL when: 1). The input BufferSize cannot hold the converted value. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* MdePkg/BasePrintLib: Refine the SPrint functionsHao Wu2017-02-214-213/+315
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the following 12 APIs in MdePkg/BasePrintLib: UnicodeVSPrint UnicodeBSPrint UnicodeSPrint UnicodeVSPrintAsciiFormat UnicodeBSPrintAsciiFormat UnicodeSPrintAsciiFormat AsciiVSPrint AsciiBSPrint AsciiSPrint AsciiVSPrintUnicodeFormat AsciiBSPrintUnicodeFormat AsciiSPrintUnicodeFormat They will ASSERT when: 1) The input parameter 'StartOfBuffer' is NULL if 'BufferSize' indicates at least 1 Ascii/Unicode character can be held. 2) The input parameter 'FormatString' is NULL if 'BufferSize' indicates at least 1 Ascii/Unicode character can be held. 3) The input parameter 'FormatString' contains more than PcdMaximum[Ascii|Unicode]StringLength Ascii/Unicode characters. 4) The produced string contains more than PcdMaximum[Ascii|Unicode]StringLength Ascii/Unicode characters. This commits removes the ASSERT case 4) and add the following new ASSERT case: 4) The input parameter 'BufferSize' is greater than (PcdMaximumAsciiStringLength * sizeof (CHAR8)) for Ascii format string or (PcdMaximumUnicodeStringLength * sizeof (CHAR16) + 1) for Unicode format string. And for those ASSERT cases, 0 will be returned by those 12 APIs. For the following 2 APIs in MdePkg/BasePrintLib: SPrintLength SPrintLengthAsciiFormat They will ASSERT when: 1) The input parameter 'FormatString' is NULL. 2) The input parameter 'FormatString' contains more than PcdMaximum[Ascii|Unicode]StringLength Ascii/Unicode characters. And for those ASSERT cases, 0 will be returned by those 2 APIs. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
* MdePkg: Convert all .uni files to utf-8Jordan Justen2015-12-151-0/+0
| | | | | | | | | | | | To convert these files I ran: $ python3 BaseTools/Scripts/ConvertUni.py MdePkg Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19256 6f19259b-4bc3-4df7-8a09-765794883524
* MdePkg/BasePrintLib: make mStatusString array CONSTArd Biesheuvel2015-07-161-1/+1
| | | | | | | | | | | | | | Change the type of mStatusString[] to reflect that it is a CONST array of pointers to CONST. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18021 6f19259b-4bc3-4df7-8a09-765794883524
* MdePkg: Add %u and %lu support for PrintLib and DebugLib.Qiu Shumin2015-06-082-5/+24
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Qiu Shumin <shumin.qiu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17571 6f19259b-4bc3-4df7-8a09-765794883524
* MdePkg: Convert non DOS format files to DOS formatGao, Liming2014-09-031-0/+0
| | | | | | | | | Module UNI and Package UNI files are not DOS format. Convert them to DOS format. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gao, Liming <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16042 6f19259b-4bc3-4df7-8a09-765794883524
* MdePkg: INF/DEC file updates to EDK II packagesGao, Liming2014-08-271-0/+0
| | | | | | | | | | | | | 2. Add MODULE_UNI_FILE file that contains the localized Abstract and Description of a module. a. Addresses an information gap between INF files and the UEFI Distribution Packaging Specification XML schema b. There will be an associated update to UPT in BaseTools to consume MODULE_UNI_FILE and associated UNI file during UDP creation that performs the INF -> XML conversion. c. There will be an associated update to UPT in BaseTools to produce MODULE_UNI_FILE and associated UNI file during UDP installation that performs the XML -> INF conversion. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gao, Liming <liming.gao@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15918 6f19259b-4bc3-4df7-8a09-765794883524
* MdePkg: INF/DEC file updates to EDK II packagesGao, Liming2014-08-271-1/+3
| | | | | | | | | | | | | 1. Usage information in INF file comment blocks are either incomplete or incorrect. This includes usage information for Protocols/PPIs/GUIDs/PCDs/HOBs/Events/BootModes. The syntax for usage information in comment blocks is defined in the EDK II Module Information (INF) Specification Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gao, Liming <liming.gao@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15917 6f19259b-4bc3-4df7-8a09-765794883524
* Add type cast for better coding style.Qiu Shumin2014-08-071-5/+5
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Qiu Shumin <shumin.qiu@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15769 6f19259b-4bc3-4df7-8a09-765794883524
* MdePkg/BasePrintLib: Do not do operations with NULLHarry Liebel2014-07-091-7/+14
| | | | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Harry Liebel <Harry.Liebel@arm.com> Reviewed-By: Olivier Martin <olivier.martin@arm.com> Reviewed-by: Gao, Liming <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15646 6f19259b-4bc3-4df7-8a09-765794883524
* Add the missing "," for the patch to fix status code print string.Gary Ching-Pang Lin2013-06-041-1/+1
| | | | | | | | Signed-off-by: Gary Ching-Pang Lin <glin@suse.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14395 6f19259b-4bc3-4df7-8a09-765794883524
* Without this fix, the "%r" format specifier prints eg. "0000001A" instead of ↵lgao42013-05-241-2/+12
| | | | | | | | | | | "Security Violation" for EFI_SECURITY_VIOLATION. Signed-off-by: Gary Ching-Pang Lin <glin@suse.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14387 6f19259b-4bc3-4df7-8a09-765794883524
* Enhance the code to make the code logic more clear.ydong102012-08-211-0/+3
| | | | | | | Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13650 6f19259b-4bc3-4df7-8a09-765794883524
* Add Missing invocations to VA_END() for VA_START().rsun32012-02-012-7/+22
| | | | | | | Signed-off-by: rsun3 Reviewed-by: lgao4 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12979 6f19259b-4bc3-4df7-8a09-765794883524
* Refine code to follow coding style.ydong102011-09-141-1/+1
| | | | | | Signed-of-by: ydong10 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12346 6f19259b-4bc3-4df7-8a09-765794883524
* Refine code to follow coding style.ydong102011-09-051-1/+1
| | | | | | Signed-off-by: ydong10 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12281 6f19259b-4bc3-4df7-8a09-765794883524
* Add check before use to make code run more safer.ydong102011-09-021-8/+9
| | | | | | Signed-off-by: ydong10 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12262 6f19259b-4bc3-4df7-8a09-765794883524
* Refine code to follow coding style.ydong102011-08-241-1/+1
| | | | | | Signed-off-by: ydong10 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12196 6f19259b-4bc3-4df7-8a09-765794883524
* Fix X64 compile error.lgao42011-08-091-1/+1
| | | | | | Signed-off-by: lgao4 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12110 6f19259b-4bc3-4df7-8a09-765794883524
* clarify the logic of the print length counting functions in both PrintLib ↵jcarsey2011-08-081-25/+17
| | | | | | | | | library instances. signed-off-by: jcarsey reviewed-by: geekboy15a git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12102 6f19259b-4bc3-4df7-8a09-765794883524
* Fix X64 compile error.lgao42011-08-041-1/+1
| | | | | | Signed-off-by: lgao4 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12086 6f19259b-4bc3-4df7-8a09-765794883524
* Add 2 functions to UefiLib library class: CatSPrint and CatVSPrint.jcarsey2011-08-023-41/+160
| | | | | | | | | | | | | Implement these functions in the UefiLib instance. Add 2 functions to PrintLib library class: SPrintLengthAsciiFormat and SPrintLength. Implement these functions in the BasePrintLib instance and the DxePrintLib2Protocol instance. Signed-off-by: jcarsey Reviewed-by: jljusten Reviewed-by: geekboy15a git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12081 6f19259b-4bc3-4df7-8a09-765794883524
* Fix ICC build break.lgao42011-05-261-3/+9
| | | | | | | | Signed-off-by: lgao4 Reviewed-by: rsun3 Reviewed-by: mdkinney git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11704 6f19259b-4bc3-4df7-8a09-765794883524
* Update BasePrintLib to handle the unaligned GUID. lgao42011-05-241-4/+4
| | | | | | | | Signed-off-by: lgao4 Reviewed-by: rsun3 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11697 6f19259b-4bc3-4df7-8a09-765794883524
* Minor grammatical work--mostly adding periods. Items with ONLY period added ↵myronporter2010-06-254-48/+48
| | | | | | did not have the heading date changed, but Items with content changes had heading copyright dates updated. Sending separately a list of files missing Doxygen @param and @return information. (PENDING) git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10604 6f19259b-4bc3-4df7-8a09-765794883524
* Forcing functions with variable argument lists to use the same calling ↵geekboy15a2010-04-292-0/+2
| | | | | | | | convention (EFIAPI). This solves issues when using compilers where the default calling convention is not EFIAPI. This fixes boot issues when using GCC 4.4 in X64 modules. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10441 6f19259b-4bc3-4df7-8a09-765794883524
* Update the copyright notice formathhtian2010-04-234-9/+9
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10415 6f19259b-4bc3-4df7-8a09-765794883524
* 1. Correct File header to ## @filelgao42010-02-241-4/+4
| | | | | | 2. Remove unnecessary .common] postfix on section. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10052 6f19259b-4bc3-4df7-8a09-765794883524
* Update function description to be consistent with code definition: HEX_RADIX ↵xdu22009-11-172-10/+10
| | | | | | => RADIX_HEX. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9434 6f19259b-4bc3-4df7-8a09-765794883524
* Fix file headersmdkinney2009-08-241-1/+1
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9189 6f19259b-4bc3-4df7-8a09-765794883524
* Update to make end-of-line consistent for all source files in MdePkg. There ↵qhuang82009-08-191-9/+9
| | | | | | are no other updates besides that change. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9141 6f19259b-4bc3-4df7-8a09-765794883524
* Update BasePrintLib to work correctly on compilers where VA_LIST is a structuremdkinney2009-08-181-4/+13
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9109 6f19259b-4bc3-4df7-8a09-765794883524
* Adjust the behavior of the MdePkg Print Library class to produce a ↵mdkinney2009-06-301-2/+52
| | | | | | | | | | | | | | | consistent style of EOL characters. Previously, the Print Library class would translate '\n' to '\n\r'. With this update, the following EOL translations are performed: 1) '\r' to '\r' 2) '\r\n' to '\r\n' 3) '\n' to '\r\n' 4) '\n\r' to '\r\n' git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8692 6f19259b-4bc3-4df7-8a09-765794883524
* This checkin addresses the compatibility issue of passing arguments of type ↵mdkinney2009-05-303-62/+286
| | | | | | | | | | | | | | | VA_LIST between components. The type VA_LIST is mapped onto the compiler specific implementation of varargs. As a result, modules build with different compilers may not use the same VA_LIST structure. The solution to this issue is to define a new type called BASE_LIST that is a compiler independent method of passing varargs between modules. Add BASE_LIST type to Base.h Add BAS_ARG() macro to Base.h Add 4 functions to PrintLib.h that use BASE_LIST. Change ReportStatsuCodeExtractDebugInfo() from ReportStatusCodeLib.h to take a BASE_LIST argument instead of a VA_LIST argument Add the 4 new functions to BasePrintLib implementation that use BASE_LIST Update BaseReportStatusCodeLib implementation of ReportStatsuCodeExtractDebugInfo() to use a BASE_LIST argument instead of a VA_LIST argument git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8404 6f19259b-4bc3-4df7-8a09-765794883524
* Fix typos in comments.qhuang82009-02-061-4/+4
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7447 6f19259b-4bc3-4df7-8a09-765794883524
* Add comment to explain use of the types "int" and "unsigned int" in the ↵mdkinney2009-02-051-0/+16
| | | | | | implementation of the BasePrintLib which does not follow the source code conventions used for the rest of the EDK II project. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7444 6f19259b-4bc3-4df7-8a09-765794883524
* Minor adjust the logic in BasePrintLib and fix several typosqhuang82009-02-042-30/+27
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7432 6f19259b-4bc3-4df7-8a09-765794883524
* Fix minor coding style issue.qhuang82009-02-021-1/+1
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7388 6f19259b-4bc3-4df7-8a09-765794883524
* Fix a bug that length might be a negative value for worker function ↵qhuang82009-01-193-12/+12
| | | | | | BasePrintLibFillBuffer(). In view of this, it is better to reuse for loop to fill the buffer. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7300 6f19259b-4bc3-4df7-8a09-765794883524
* Apply BaseMemoryLib to replace the for loop.qhuang82009-01-143-15/+13
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7278 6f19259b-4bc3-4df7-8a09-765794883524
* INF file verified, and Coding Style reviewed.gikidy2009-01-091-2/+2
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7232 6f19259b-4bc3-4df7-8a09-765794883524
* Memory overflow verifiedjji42009-01-071-2/+2
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7204 6f19259b-4bc3-4df7-8a09-765794883524
* Fix memory overflow. gikidy2009-01-071-5/+11
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7203 6f19259b-4bc3-4df7-8a09-765794883524
* Synchronize MdePkg h files to Library/Base* c files.gikidy2008-12-112-10/+8
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6984 6f19259b-4bc3-4df7-8a09-765794883524
* Function headers in .h and .c files synchronized with specjji42008-11-261-0/+1
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6731 6f19259b-4bc3-4df7-8a09-765794883524
* Clean up the unused EDK_RELEASE_VERSION, PI_SPECIFICATION_VERSION and ↵lgao42008-11-251-1/+0
| | | | | | EFI_SPECIFICATION_VERSION from all the MdePkg INF files. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6716 6f19259b-4bc3-4df7-8a09-765794883524
* Function headers and comments have been checked with spec.jji42008-11-211-4/+4
| | | | git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6653 6f19259b-4bc3-4df7-8a09-765794883524