diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-04 14:06:13 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-10-11 13:50:00 -0400 |
commit | c9a8e5fce009e3c601a43c49ea9dbcb25d1ffac5 (patch) | |
tree | c04d8a0702b70c3029d7957800d70a1db48de255 | |
parent | 3bc3206e1c0f3f8891b544df02caae0e6d844f7d (diff) |
tty: wipe buffer.
After we are done with the tty buffer, zero it out.
Reported-by: aszlig <aszlig@nix.build>
Tested-by: Milan Broz <gmazyland@gmail.com>
Tested-by: Daniel Zatovic <daniel.zatovic@gmail.com>
Tested-by: aszlig <aszlig@nix.build>
Cc: Willy Tarreau <w@1wt.eu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/tty/tty_buffer.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/tty/tty_buffer.c b/drivers/tty/tty_buffer.c index 76151c002858..77070c2d1240 100644 --- a/drivers/tty/tty_buffer.c +++ b/drivers/tty/tty_buffer.c | |||
@@ -473,11 +473,15 @@ receive_buf(struct tty_port *port, struct tty_buffer *head, int count) | |||
473 | { | 473 | { |
474 | unsigned char *p = char_buf_ptr(head, head->read); | 474 | unsigned char *p = char_buf_ptr(head, head->read); |
475 | char *f = NULL; | 475 | char *f = NULL; |
476 | int n; | ||
476 | 477 | ||
477 | if (~head->flags & TTYB_NORMAL) | 478 | if (~head->flags & TTYB_NORMAL) |
478 | f = flag_buf_ptr(head, head->read); | 479 | f = flag_buf_ptr(head, head->read); |
479 | 480 | ||
480 | return port->client_ops->receive_buf(port, p, f, count); | 481 | n = port->client_ops->receive_buf(port, p, f, count); |
482 | if (n > 0) | ||
483 | memset(p, 0, n); | ||
484 | return n; | ||
481 | } | 485 | } |
482 | 486 | ||
483 | /** | 487 | /** |