|
Message-Id: <4D107104-6B65-4A82-9662-A8392B56B744@gmail.com>
Date: Tue, 26 Nov 2024 11:03:36 +0100
From: Gil Pedersen <kanongil@...il.com>
To: Rich Felker <dalias@...c.org>
Cc: musl@...ts.openwall.com
Subject: Re: bug: isatty() can return wrong value
> On 20 Aug 2024, at 13.11, Rich Felker <dalias@...c.org> wrote:
>
> What guarantee do we have that nothing other than a tty in this state
> will return EIO for the ioctl? The implementation on the kernel side
> suggests that, if they tried to put any other device in such a state
> by replacing its ioctl function the same way, it would also give EIO
> for these ioctls.
Yeah, EIO is unconditionally signalled for any (expect TIOCSPGRP) ioctl call when a tty is hung.
While a TIOCGWINSZ ioctl call that returns EIO will very likely be a tty, there is indeed no such guarantee.
> I'm hopeful there's some good fix here where we don't have to have
> either of these bad behaviors, but returning true for isatty() of a
> device that is absolutely not a tty is a much worse behavior than
> returning false for a device that is/was a tty when it was opened but
> that's been replaced by the kernel with a defunct device.
I have proposed a change to the ioctl handling in the kernel:
https://lore.kernel.org/linux-serial/20241121111506.4717-1-gpdev@gpost.dk/
If merged, the issue should be fixed going forward.
/Gil
Content of type "text/html" skipped
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.