audk/MdePkg/Library/BaseLib
Leif Lindholm 2ad9cf37a4 MdePkg: ensure SafeString length functions don't access beyond MaxSize
The StrnLenS and AsciiStrnLenS functions, when presented with a string
with no terminating NULL in the first MaxSize characters will check
the character at String[MaxSize] before checking if Length < MaxSize.
(They return the correct value, but have accessed beyond the stated
limit in the process.)

Flip the order of the tests to prevent this behaviour.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17936 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-13 11:35:28 +00:00
..
AArch64 MdePkg/AArch64: use GCC_ASM_EXPORT to export functions 2015-07-09 10:43:27 +00:00
Arm MdePkg: fix ARM version of InternalMathSwapBytes64 () 2015-03-27 17:27:14 +00:00
Ebc Minor grammatical work--mostly adding periods. Sending separately a list of files missing Doxygen @param and @return information. 2010-06-11 00:02:51 +00:00
Ia32 MdePkg/BaseLib: Preserve EBX register and fix stack offset to LinearAddress in AsmFlushCacheLine() 2015-04-30 07:25:07 +00:00
Ipf Current IPF version SwitchStack implementation uses loadrs instruction to restore dirty partition of register stack from the backing store, but there is no guarantee to make the backing store valid before. So add flushrs before loadrs to make sure backing store valid. 2012-04-11 01:56:48 +00:00
X64 MdePkg NASM Thunk16: Add missing ASM_PFX for InternalAsmThunk16 2014-09-04 15:17:57 +00:00
ARShiftU64.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
BaseLib.inf MdePkg/BaseLib: Support IA32 processors without CMOVx 2015-04-27 19:38:39 +00:00
BaseLib.uni MdePkg: Convert non DOS format files to DOS format 2014-09-03 08:33:28 +00:00
BaseLibInternals.h Fix minor typos in BaseLib LinkedList comments 2013-03-13 06:44:10 +00:00
BitField.c Correctly character in comments of BaseLib BitField. 2013-07-22 06:41:52 +00:00
CheckSum.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
ChkStkGcc.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
Cpu.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
CpuDeadLoop.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
DivS64x64Remainder.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
DivU64x32.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
DivU64x32Remainder.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
DivU64x64Remainder.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
FilePaths.c MdeModulePkg, MdePkg, NetworkPkg, OvmfPkg, PerformancePkg, ShellPkg: Library Migration. 2015-01-13 01:04:07 +00:00
GetPowerOfTwo32.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
GetPowerOfTwo64.c Fixed K9 scan issues. 2010-08-09 06:28:01 +00:00
HighBitSet32.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
HighBitSet64.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
LRotU32.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
LRotU64.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
LShiftU64.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
LinkedList.c Match the comments with the implementation for Baselib::GetFirstNode. 2013-08-08 03:35:09 +00:00
LongJump.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
LowBitSet32.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
LowBitSet64.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
Math64.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
ModU64x32.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
MultS64x64.c Fixed K9 scan issues. 2010-08-09 06:28:01 +00:00
MultU64x32.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
MultU64x64.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
RRotU32.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
RRotU64.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
RShiftU64.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
SafeString.c MdePkg: ensure SafeString length functions don't access beyond MaxSize 2015-07-13 11:35:28 +00:00
SetJump.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
String.c MdePkg: Add deprecate flag for the functions which has a replace function in safe c library. 2014-12-15 10:05:42 +00:00
SwapBytes16.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
SwapBytes32.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
SwapBytes64.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
SwitchStack.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
Unaligned.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
X86DisablePaging32.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
X86DisablePaging64.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
X86EnablePaging32.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
X86EnablePaging64.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
X86FxRestore.c Fix memory out of band access in AsmFxSave() and AsmFxRestore(). 2012-10-30 08:35:08 +00:00
X86FxSave.c Fix memory out of band access in AsmFxSave() and AsmFxRestore(). 2012-10-30 08:35:08 +00:00
X86GetInterruptState.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
X86MemoryFence.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-24 00:20:35 +00:00
X86Msr.c Add ASSERT() for BitField operations to make sure the input value is valid. 2012-12-25 02:25:50 +00:00
X86ReadGdtr.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-25 21:56:02 +00:00
X86ReadIdtr.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-25 21:56:02 +00:00
X86Thunk.c Update the modifier of ThunkContext parameter for AsmPrepareThunk16() in BaseLib from OUT to IN OUT. 2012-02-27 07:46:04 +00:00
X86WriteGdtr.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-25 21:56:02 +00:00
X86WriteIdtr.c Minor grammatical work--mostly adding periods. Items with ONLY period added 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) 2010-06-25 21:56:02 +00:00