All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael Kerrisk (man-pages)" <mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Christian Brauner
	<christian.brauner-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
Cc: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	"Dmitry V. Levin" <ldv-u2l5PoMzF/Vg9hUCZPvPmw@public.gmane.org>,
	linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	"Serge Hallyn" <serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org>,
	"Stéphane Graber"
	<stgraber-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH] ttyname.3: document ENODEV error code
Date: Wed, 19 Apr 2017 15:21:34 +0200	[thread overview]
Message-ID: <8c7cb5df-bc2f-94d4-0a17-6efdf86f43b3@gmail.com> (raw)
In-Reply-To: <c3bc0470-b6a6-2ecb-dcb2-97e355c1e307-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

Hi Christian,

Pink on the below!

Cheers,

Michael


On 03/26/2017 02:47 PM, Michael Kerrisk (man-pages) wrote:
> On 03/24/2017 03:53 PM, Christian Brauner wrote:
>> Sorry, for the late reply.
>>
>> On Fri, Mar 24, 2017 at 3:40 PM, Michael Kerrisk (man-pages)
>> <mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>>> Hi Dmitry,
>>>
>>> On 03/20/2017 10:58 PM, Dmitry V. Levin wrote:
>>>> Hi,
>>>>
>>>> On Mon, Mar 20, 2017 at 10:02:15PM +0100, Christian Brauner wrote:
>>>>> Hi,
>>>>>
>>>>> Thanks Dmitry. One comment
>>>>>
>>>>> On 20 Mar 2017 9:51 p.m., "Dmitry V. Levin" <ldv-u2l5PoMzF/Vg9hUCZPvPmw@public.gmane.org> wrote:
>>>>>
>>>>> ---
>>>>>  man3/ttyname.3 | 8 +++++++-
>>>>>  1 file changed, 7 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/man3/ttyname.3 b/man3/ttyname.3
>>>>> index 14c24e7..0be50c6 100644
>>>>> --- a/man3/ttyname.3
>>>>> +++ b/man3/ttyname.3
>>>>> @@ -71,6 +71,11 @@ File descriptor does not refer to a terminal device.
>>>>>  .RB ( ttyname_r ())
>>>>>  .I buflen
>>>>>  was too small to allow storing the pathname.
>>>>> +.TP
>>>>> +.\" glibc commit 15e9a4f378c8607c2ae1aa465436af4321db0e23
>>>>> +.B ENODEV
>>>>> +File descriptor refers to a slave pseudoterminal device
>>>>> +but the corresponding pathname could not be found.
>>>>>
>>>>> I think it would be good to explicitly mention that ENODEV is set in case
>>>>> the fd does not refer to a pts device in its namespace. Otherwise users
>>>>> might take this as an indication that this is a more generic error which is
>>>>> not the case.
>>>>
>>>> In fact, this is a more generic error than a namespace mismatch, although
>>>> the latter is the most likely reason.
>>>>
>>>> Imagine that the corresponding file inside /dev/pts/ is not available for
>>>> some reason and the stat call has failed.  This situation could be
>>>> reproduced e.g. by bind-mounting an empty directory to /dev/pts.
>>>> A subsequent ttyname invocation would end up with ENODEV because the device
>>>> is literally not available although it's withing the same namespace.
>>>>
>>>> I don't mind if you change the description to mention the namespace case
>>>> as the most likely, but please do not make it the only case when ENODEV
>>>> can happen.
>>>
>>> I'm open on this point. If someone wants to write a suitable patch, I'll
>>> probably take it.
>>
>> This point is in my opinion crucial. The over-mounting scenario is
>> still a valid case for most programs that do not actually care about
>> what /dev/pts/<n> is actually used to go on which is a nice side-effect
>> of the patch. The namespace part should be mentioned since ttyname{_r}()
>> explicitly does not return anything when it detects that
>> /proc/self/fd/<n> points to /dev/pts/<n> but /dev/pts/<n> does not exist
>> in the same namespace. This was the original motivation when we
>> wrote the patch. So users that get ENODEV from ttyname{_r}() should
>> be aware that resolving the symlink manually afterwards doesn't give them
>> a /dev/pts/<n> path valid in the current namespace.
>>
>> I'll put this on my TODO list but if someone is willing to send a
>> patch right away
>> please do so. :)
> 
> Hi Christian,
> 
> I think you may be best placed to know what you want to convey here.
> I'd be happy to receive a patch.
> 
> Cheers,
> 
> Michael
> 
> 
> 


-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2017-04-19 13:21 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-20 20:51 [PATCH] ttyname.3: document ENODEV error code Dmitry V. Levin
     [not found] ` <CAPP7u0WL2wa2MLavq22q616=-pHNPyNXqLpPGzR4JqYzGA16-A@mail.gmail.com>
     [not found]   ` <CAPP7u0WL2wa2MLavq22q616=-pHNPyNXqLpPGzR4JqYzGA16-A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-03-20 21:58     ` Dmitry V. Levin
     [not found]       ` <20170320215823.GA28075-u2l5PoMzF/Vg9hUCZPvPmw@public.gmane.org>
2017-03-24 14:40         ` Michael Kerrisk (man-pages)
     [not found]           ` <a3314168-ac99-28ef-2916-4da65adc8377-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-03-24 14:53             ` Christian Brauner
     [not found]               ` <CAPP7u0Ux2_pKFdS1X0_5SbR_MmvAmcR7+f=XcUOXWJ1Fr0naWA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-03-26 12:47                 ` Michael Kerrisk (man-pages)
     [not found]                   ` <c3bc0470-b6a6-2ecb-dcb2-97e355c1e307-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-04-19 13:21                     ` Michael Kerrisk (man-pages) [this message]
     [not found]                       ` <8c7cb5df-bc2f-94d4-0a17-6efdf86f43b3-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-04-21 20:05                         ` [PATCH] ttyname(3): add NOTES section Christian Brauner
     [not found]                           ` <20170421200509.23616-1-christian.brauner-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>
2017-04-23 11:52                             ` Dmitry V. Levin
     [not found]                               ` <20170423115237.GA26862-u2l5PoMzF/Vg9hUCZPvPmw@public.gmane.org>
2017-04-23 12:11                                 ` Michael Kerrisk (man-pages)
2017-04-23 17:58                             ` Michael Kerrisk (man-pages)
     [not found] ` <20170320205104.GA27434-u2l5PoMzF/Vg9hUCZPvPmw@public.gmane.org>
2017-03-24 14:40   ` [PATCH] ttyname.3: document ENODEV error code Michael Kerrisk (man-pages)

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=8c7cb5df-bc2f-94d4-0a17-6efdf86f43b3@gmail.com \
    --to=mtk.manpages-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=christian.brauner-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org \
    --cc=ldv-u2l5PoMzF/Vg9hUCZPvPmw@public.gmane.org \
    --cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org \
    --cc=stgraber-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.