mirror of
				https://git.proxmox.com/git/mirror_edk2
				synced 2025-10-31 05:28:13 +00:00 
			
		
		
		
	|  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 | ||