summaryrefslogtreecommitdiffstats
path: root/ShellPkg
diff options
context:
space:
mode:
authorgechao <gechao@greatwall.com.cn>2021-01-14 11:22:59 +0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2021-02-03 01:56:42 +0000
commit839f649abb6d11fa3e9137ba2afdb2d1d037ba60 (patch)
tree462817a9a2efb6f0f8fa0261276612f8b2617ac7 /ShellPkg
parent3f90ac3ec03512e2374cd2968c047a7e856a8965 (diff)
downloadedk2-839f649abb6d11fa3e9137ba2afdb2d1d037ba60.tar.gz
edk2-839f649abb6d11fa3e9137ba2afdb2d1d037ba60.tar.bz2
edk2-839f649abb6d11fa3e9137ba2afdb2d1d037ba60.zip
MdeModulePkg/TerminalDxe: Terminal fifo buffer overflow.
Fix the bug of terminal fifo buffer overflow with UINT8 type. typedef struct { UINT8 Head; UINT8 Tail; UINT8 Data[RAW_FIFO_MAX_NUMBER + 1]; } RAW_DATA_FIFO; RAW_FIFO_MAX_NUMBER is 256. the data buffer size is 257 (Index from 0 to 256), but the max value of the index, Head or Tail (UINT8), is 255. That means the last data of the data buffer would be always empty if we use Head/Tail to output/input the data correctly. And because of the incorrect buffer size the FIFO full check "((Tail + 1) % (RAW_FIFO_MAX_NUMBER + 1)) == Head" would never meet. Signed-off-by: gechao <gechao@greatwall.com.cn> Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Diffstat (limited to 'ShellPkg')
0 files changed, 0 insertions, 0 deletions