audk/MdePkg
Ruiyu Ni 56658c22a6 MdePkg/SafeString: Fix potential out-of-bound memory access
Today's implementation of [Ascii]StrnCpyS/[Ascii]StrnCatS calls
StrnLenS () to get the length of source string but supplies the
destination buffer size as max size.
It's a bug that may cause out-of-bound memory access.
For example:
  StrnCpyS (Dest[10], 10, "hello", 6)
  -> StrnLenS ("hello", 10) //< cause out-of bound memory access

In a pool guard enabled environment, when using shell to edit an
existing file which contains empty line, the page fault is met.

The patch fixes the four library functions to avoid such
out-of-bound memory access.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
2018-02-06 17:31:08 +08:00
..
Include MdePkg/SimpleTextInEx.h: Fix comments alignment 2018-02-01 14:03:45 +08:00
Library MdePkg/SafeString: Fix potential out-of-bound memory access 2018-02-06 17:31:08 +08:00
MdePkg.dec MdePkg/BaseSafeIntLib: Add SafeIntLib class and instance 2018-01-25 09:42:20 -08:00
MdePkg.dsc MdePkg/BaseSafeIntLib: Add SafeIntLib class and instance 2018-01-25 09:42:20 -08:00
MdePkg.uni MdePkg/MdePkg.uni: Add description for PcdUartDefaultReceiveFifoDepth 2016-04-05 14:09:32 +08:00
MdePkgExtra.uni MdePkg: Convert all .uni files to utf-8 2015-12-15 04:53:50 +00:00