Przeglądaj źródła

[tty]修复多次scanf之后,导致丢数据的问题 (#7640)

goldengrandpa 1 rok temu
rodzic
commit
1d239db59e
1 zmienionych plików z 3 dodań i 2 usunięć
  1. 3 2
      components/drivers/tty/n_tty.c

+ 3 - 2
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)
     {