Date: Wed, 24 Sep 2008 17:34:32 GMT From: Ed Schouten <ed@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 150391 for review Message-ID: <200809241734.m8OHYWTp009688@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=150391 Change 150391 by ed@ed_dull on 2008/09/24 17:34:00 Clamp the TTY buffer sizes to 64K. It turns out we have many drivers in the tree that have no practical limit on the baud rate, which is dangerous. Affected files ... .. //depot/projects/mpsafetty/sys/kern/tty.c#49 edit Differences ... ==== //depot/projects/mpsafetty/sys/kern/tty.c#49 (text+ko) ==== @@ -92,21 +92,23 @@ * Set TTY buffer sizes. */ +#define TTYBUF_MAX 65536 + static void tty_watermarks(struct tty *tp) { - speed_t sp; + size_t bs; /* Provide an input buffer for 0.2 seconds of data. */ - sp = MAX(tp->t_termios.c_ispeed, 0); - ttyinq_setsize(&tp->t_inq, tp, sp / 5); + bs = MIN(tp->t_termios.c_ispeed / 5, TTYBUF_MAX); + ttyinq_setsize(&tp->t_inq, tp, bs); /* Set low watermark at 10% (when 90% is available). */ tp->t_inlow = (ttyinq_getsize(&tp->t_inq) * 9) / 10; /* Provide an ouput buffer for 0.2 seconds of data. */ - sp = MAX(tp->t_termios.c_ospeed, 0); - ttyoutq_setsize(&tp->t_outq, tp, sp / 5); + bs = MIN(tp->t_termios.c_ospeed / 5, TTYBUF_MAX); + ttyoutq_setsize(&tp->t_outq, tp, bs); /* Set low watermark at 10% (when 90% is available). */ tp->t_outlow = (ttyoutq_getsize(&tp->t_outq) * 9) / 10;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809241734.m8OHYWTp009688>