lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1359722247.3381.16.camel@thor.lan>
Date:	Fri, 01 Feb 2013 07:37:27 -0500
From:	Peter Hurley <peter@...leysoftware.com>
To:	Jiri Slaby <jslaby@...e.cz>
Cc:	gregkh@...uxfoundation.org, alan@...ux.intel.com,
	jirislaby@...il.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 07/10] TTY: switch tty_schedule_flip

On Thu, 2013-01-03 at 15:53 +0100, Jiri Slaby wrote:
> Now, we start converting tty buffer functions to actually use
> tty_port. This will allow us to get rid of the need of tty in many
> call sites. Only tty_port will needed and hence no more
> tty_port_tty_get in those paths.
> 
> This is the last one: tty_schedule_flip

[snip]

> diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c
> index 5aace4d..a9af1b9a 100644
> --- a/drivers/tty/vt/keyboard.c
> +++ b/drivers/tty/vt/keyboard.c
> @@ -307,26 +307,17 @@ int kbd_rate(struct kbd_repeat *rep)
>   */
>  static void put_queue(struct vc_data *vc, int ch)
>  {
> -	struct tty_struct *tty = vc->port.tty;
> -
>  	tty_insert_flip_char(&vc->port, ch, 0);
> -	if (tty) {
> -		tty_schedule_flip(tty);
> -	}
> +	tty_schedule_flip(&vc->port);
>  }
>  
>  static void puts_queue(struct vc_data *vc, char *cp)
>  {
> -	struct tty_struct *tty = vc->port.tty;
> -
> -	if (!tty)
> -		return;
> -
>  	while (*cp) {
>  		tty_insert_flip_char(&vc->port, *cp, 0);
>  		cp++;
>  	}
> -	tty_schedule_flip(tty);
> +	tty_schedule_flip(&vc->port);
>  }

Umm. So even though the vt driver knows the tty has been shutdown,
keystrokes will still be buffered? And then fed to whichever tty happens
to next get installed on the same port?

Pretty much renders this meaningless:

static void flush_to_ldisc(struct work_struct *work)
{
....
+	if (WARN_RATELIMIT(tty == NULL, "tty is NULL"))
+		return;

Regards,
Peter Hurley

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ