linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Howard Chu <hyc@symas.com>
To: Peter Hurley <peter@hurleysoftware.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>,
	Jiri Slaby <jslaby@suse.cz>,
	linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org
Subject: Re: [PATCH] n_tty: Remove LINEMODE support
Date: Sun, 18 Jan 2015 22:44:00 +0000	[thread overview]
Message-ID: <54BC3730.706@symas.com> (raw)
In-Reply-To: <54BC3236.1030004@hurleysoftware.com>

Peter Hurley wrote:
> Hi Howard,
>
> On 01/18/2015 05:09 PM, Howard Chu wrote:
>> Peter Hurley wrote:
>>> Commit 26df6d13406d1 ("tty: Add EXTPROC support for LINEMODE") added
>>> the undocumented EXTPROC input processing mode, which ignores the ICANON
>>> setting and forces pty slave input to be processed in non-canonical
>>> mode.
>>>
>>> Although intended to provide a transparent mechanism for local line
>>> edit with telnetd (and other remote shell protocols), the transparency
>>> is limited.
>>>
>>> Userspace usage is abandoned; telnetd does not even compile with
>>> LINEMODE support. readline/bash and sshd never supported this.
>>
>> I object to this. Code for all of the above exists and works. I use this code daily.
>>
>> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=585527
>> http://lists.gnu.org/archive/html/bug-readline/2011-01/msg00004.html
>> https://github.com/hyc/OpenSSH-LINEMODE
>>
>> The lack of LINEMODE support in upstream sshd can only be considered a security hole.
>>
>> http://www.metzdowd.com/pipermail/cryptography/2015-January/024288.html
>
> These are all bug reports about userspace _not_ supporting this extension.

Bug reports *with working patches* attached. And the fact remains that 
not supporting this feature *is* a security liability.

> Where is a working userspace consumer of this interface?

The OpenSSH fork on github is a full working client and server using 
this interface.

> I seriously doubt this works reliably.
> What happens when the pty slave reader is in canonical mode and gets unterminated
> input because only a portion of the input is available yet? The way this is
> coded does _not_ require line termination before returning data to userspace.

Userspace already has to deal with incomplete lines if the input line is 
longer than the input buffer.

> Also, ioctl(FIONREAD) doesn't match what read() returns, nor that poll()/select()
> indicated input was available.

Hm, I think you're mistaken about poll/select.

     if ((!ldata->icanon && (ldata->read_cnt >= tty->minimum_to_wake)) ||
         L_EXTPROC(tty)) {
         kill_fasync(&tty->fasync, SIGIO, POLL_IN);
         if (waitqueue_active(&tty->read_wait))
             wake_up_interruptible(&tty->read_wait);
     }


-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/

  reply	other threads:[~2015-01-18 22:44 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-18 21:30 [PATCH] n_tty: Remove LINEMODE support Peter Hurley
2015-01-18 22:09 ` Howard Chu
2015-01-18 22:22   ` Peter Hurley
2015-01-18 22:44     ` Howard Chu [this message]
2015-01-18 23:06       ` Peter Hurley
2015-01-19  4:55         ` Theodore Ts'o
2015-01-19 16:34           ` Peter Hurley
     [not found] ` <54BC3771.7030204@symas.com>
     [not found]   ` <54BC5EC7.1090202@hurleysoftware.com>
2015-01-19 12:46     ` Howard Chu
2015-01-19 14:57       ` Peter Hurley
2015-01-19 16:36         ` Howard Chu
2015-01-19 19:09           ` Peter Hurley
2015-01-19 19:43             ` Howard Chu
2015-01-20 18:02               ` Peter Hurley
2015-01-20 18:39                 ` Howard Chu
2015-01-20 18:51                   ` Howard Chu
2015-01-20 19:08                   ` Peter Hurley
2015-01-20 18:16               ` Peter Hurley
2015-01-19 20:31             ` Howard Chu
2015-01-20 14:53               ` Peter Hurley
2015-01-20 17:20                 ` Peter Hurley
2015-01-19 19:40           ` Peter Hurley
2015-01-19 16:37         ` Theodore Ts'o
2015-01-19 17:26           ` Peter Hurley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54BC3730.706@symas.com \
    --to=hyc@symas.com \
    --cc=gnomes@lxorguk.ukuu.org.uk \
    --cc=gregkh@linuxfoundation.org \
    --cc=jslaby@suse.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=peter@hurleysoftware.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).