mirror of https://github.com/acidanthera/audk.git
839f649abb
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> |
||
---|---|---|
.. | ||
Ansi.c | ||
ComponentName.c | ||
Terminal.c | ||
Terminal.h | ||
TerminalConIn.c | ||
TerminalConOut.c | ||
TerminalDxe.inf | ||
TerminalDxe.uni | ||
TerminalDxeExtra.uni | ||
Vtutf8.c |