Thread (19 messages) read the whole thread 19 messages, 3 authors, 2020-06-19

Re: [PATCH man-pages v2 2/2] openat2.2: document new openat2(2) syscall

From: Michael Kerrisk (man-pages) <hidden>
Date: 2020-03-30 09:36:50
Also in: linux-fsdevel, linux-man, lkml

On 3/30/20 11:20 AM, Aleksa Sarai wrote:
On 2020-03-30, Michael Kerrisk (man-pages) [off-list ref] wrote:
quoted
Hello Aleksa,

On 2/2/20 4:19 PM, Aleksa Sarai wrote:
quoted
Rather than trying to merge the new syscall documentation into open.2
(which would probably result in the man-page being incomprehensible),
instead the new syscall gets its own dedicated page with links between
open(2) and openat2(2) to avoid duplicating information such as the list
of O_* flags or common errors.

In addition to describing all of the key flags, information about the
extensibility design is provided so that users can better understand why
they need to pass sizeof(struct open_how) and how their programs will
work across kernels. After some discussions with David Laight, I also
included explicit instructions to zero the structure to avoid issues
when recompiling with new headers.>
Signed-off-by: Aleksa Sarai <redacted>
I'm just editing this page, and have a question on one piece.
quoted
+Unlike
+.BR openat (2),
+it is an error to provide
+.BR openat2 ()
+with a
+.I mode
+which contains bits other than
+.IR 0777 ,
This piece appears not to be true, both from my reading of the
source code, and from testing (i.e., I wrote a a small program that
successfully called openat2() and created a file that had the
set-UID, set-GID, and sticky bits set).

Is this a bug in the implementation or a bug in the manual page text?
My bad -- it's a bug in the manual. The actual check (which does work,
there are selftests for this) is:

	if (how->mode & ~S_IALLUGO)
		return -EINVAL;

But when writing the man page I forgot that S_IALLUGO also includes
those bits. Do you want me to send an updated version or would you
prefer to clean it up?
I'll clean it up.

So, it should say, "bits other than 07777", right?

Thanks,

Michael


-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help