Re: buffer overflows in the tty flip buffer in 2.6.17

From: Lennart Sorensen
Date: Sat Feb 17 2007 - 10:17:47 EST


On Sat, Feb 17, 2007 at 03:29:31PM +0300, Mockern wrote:
> When data is received from the hardware, it needs to be placed into the tty device's flip buffer. This can be done with the following bit of code:
>
> for (i = 0; i < data_size; ++i) {
> if (tty->flip.count >= TTY_FLIPBUF_SIZE)
> tty_flip_buffer_push(tty);
> tty_insert_flip_char(tty, data[i], 0);
> }
> tty_flip_buffer_push(tty);
>
> This example makes sure there are no buffer overflows in the tty flip buffer as the data is being added.
>
> But how it is done in 2.6.17 linux kernel? I did check this "overflow code" in new tty driver's code. This code looks like just removed. But somehow overflow in the tty buffer must be kept.

Well there was a problem in 2.6.16, which was fixed by 2.6.18, although
I am not sure if it was done by 2.6.17. It would loose characters due
to buffer overflow and not properly checking under high load. I grabbed
a few patches from the git tree that were added after 2.6.16 to fix the
tty problems I was having.

--
Len Sorensen
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/