From 1d239db59e58e0439d9f4fc61de44221bf5d9535 Mon Sep 17 00:00:00 2001 From: goldengrandpa <74250839+guoguozi123456@users.noreply.github.com> Date: Fri, 9 Jun 2023 09:09:50 +0800 Subject: [tty]修复多次scanf之后,导致丢数据的问题 (#7640) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/drivers/tty/n_tty.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'components/drivers') diff --git a/components/drivers/tty/n_tty.c b/components/drivers/tty/n_tty.c index 5ed7d6a6f8..8b6d1d089f 100644 --- a/components/drivers/tty/n_tty.c +++ b/components/drivers/tty/n_tty.c @@ -1436,14 +1436,15 @@ static int canon_copy_from_read_buf(struct tty_struct *tty, char *b, size_t nr) size_t buf_size = RT_TTY_BUF - tail; const void *from = read_buf_addr(ldata, tail); + size_t temp_n = n; if (n > buf_size) { rt_memcpy(b, from, buf_size); b += buf_size; - n -= buf_size; + temp_n -= buf_size; from = ldata->read_buf; } - rt_memcpy(b, from, n); + rt_memcpy(b, from, temp_n); if (found) { -- cgit v1.3.1