Fix enqueuing of characters in ttyinput_many by wrapping the call to
b_to_q in a loop. This was probably intended by the authors, as they
subtract the number of enqueued characters from count.

Found using the Clang Static Analyzer.

* device/chario.c (ttyinput_many): Fix enqueuing of characters.
---
 device/chario.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/device/chario.c b/device/chario.c
index c40705e..559396d 100644
--- a/device/chario.c
+++ b/device/chario.c
@@ -1013,6 +1013,7 @@ void ttyinput_many(
         * Do not want to overflow input queue
         */
        if (tp->t_inq.c_cc < tp->t_inq.c_hog)
+         while (count > 0)
                count -= b_to_q( chars, count, &tp->t_inq);
 
        tty_queue_completion(&tp->t_delayed_read);
-- 
1.7.10.4


Reply via email to