[SLOF] [PATCH] slof/fs/accept: Allow Unix LF line endings, too
Segher Boessenkool
segher at kernel.crashing.org
Mon Aug 30 23:55:34 AEST 2021
On Mon, Aug 30, 2021 at 11:28:15PM +1000, Alexey Kardashevskiy wrote:
> On 30/08/2021 23:10, Segher Boessenkool wrote:
> >On Mon, Aug 30, 2021 at 12:53:08PM +0200, Thomas Huth wrote:
> >>Currently SLOF only accepts CR (0x0d) line endings at the command prompt,
> >>since this is the default line ending used on serial consoles.
> >
> >>However,
> >>sometimes people try to connect to SLOF directly in a way that uses the
> >>typical Unix LF line endings (0x0a) which are then completely ignored,
> >>for example running QEMU like this:
> >>
> >> qemu-system-ppc64 -nodefaults \
> >> -chardev socket,path=/tmp/mysocket,wait=off,id=cs0,server=on \
> >> -device spapr-vty,id=serial0,reg=0x30000000,chardev=cs0
> >>
> >>and then connect to that Unix socket via "nc -U /tmp/mysocket".
> >>
> >>For such use cases, allow the 0x0a line ending in SLOF, too.
> >
> >How does that work if you feed text with CRLF combos? If it does accept
> >a new line at both CR and LF, that is problematic (it violates both the
> >OF and ANS specifications of ACCEPT).
>
> Is it in of1275 somewhere? I looked but did not spot quickly.
Hrm, the text skirts the issues somewhat :-) 7.2, in any case.
1275 doesn't really say what to do with input from another source I
think?
If you accept a new line at both CR and LF it will accept an empty line
after every "real" input line. This breaks various things (and is super
annoying in the first place).
> >A "real" terminal sends CR only, by default, and can be switched to
> >send CRLF instead (by CSI 20h; switch back with CSI 20l). You cannot do
> >only LF on a standard terminal.
>
> "strace cat" shows this on "enter":
>
> read(0, "\n", 131072) = 1
> write(1, "\n", 1) = 1
>
> What do I miss?
You didn't use a communications terminal. You used a UNIX program :-)
Segher
More information about the SLOF
mailing list