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
Ia32 MdePkg/BaseLib: Preserve EBX register and fix stack offset to LinearAddress in AsmFlushCacheLine() 2015-04-30 07:25:07 +00:00
Ipf
X64 MdePkg NASM Thunk16: Add missing ASM_PFX for InternalAsmThunk16 2014-09-04 15:17:57 +00:00
ARShiftU64.c
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
BitField.c
CheckSum.c
ChkStkGcc.c
Cpu.c
CpuDeadLoop.c
DivS64x64Remainder.c
DivU64x32.c
DivU64x32Remainder.c
DivU64x64Remainder.c
FilePaths.c MdeModulePkg, MdePkg, NetworkPkg, OvmfPkg, PerformancePkg, ShellPkg: Library Migration. 2015-01-13 01:04:07 +00:00
GetPowerOfTwo32.c
GetPowerOfTwo64.c
HighBitSet32.c
HighBitSet64.c
LRotU32.c
LRotU64.c
LShiftU64.c
LinkedList.c Match the comments with the implementation for Baselib::GetFirstNode. 2013-08-08 03:35:09 +00:00
LongJump.c
LowBitSet32.c
LowBitSet64.c
Math64.c
ModU64x32.c
MultS64x64.c
MultU64x32.c
MultU64x64.c
RRotU32.c
RRotU64.c
RShiftU64.c
SafeString.c MdePkg: ensure SafeString length functions don't access beyond MaxSize 2015-07-13 11:35:28 +00:00
SetJump.c
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
SwapBytes32.c
SwapBytes64.c
SwitchStack.c
Unaligned.c
X86DisablePaging32.c
X86DisablePaging64.c
X86EnablePaging32.c
X86EnablePaging64.c
X86FxRestore.c
X86FxSave.c
X86GetInterruptState.c
X86MemoryFence.c
X86Msr.c
X86ReadGdtr.c
X86ReadIdtr.c
X86Thunk.c
X86WriteGdtr.c
X86WriteIdtr.c