From: "Bjørn Mork" <bjorn@mork.no>
To: "Valdis Klētnieks" <valdis.kletnieks@vt.edu>
Cc: noloader@gmail.com, kernelnewbies <kernelnewbies@kernelnewbies.org>
Subject: Re: Kernel TLS
Date: Sat, 30 Nov 2019 11:10:50 +0100 [thread overview]
Message-ID: <87tv6loes5.fsf@miraculix.mork.no> (raw)
In-Reply-To: <56379.1575105115@turing-police> ("Valdis =?utf-8?Q?Kl=C4=93t?= =?utf-8?Q?nieks=22's?= message of "Sat, 30 Nov 2019 04:11:55 -0500")
"Valdis Klētnieks" <valdis.kletnieks@vt.edu> writes:
> On Sat, 30 Nov 2019 09:13:35 +0100, Bjrn Mork said:
>
>> include/linux/errno.h is kernel internal only. The UAPI header is
>> uapi/linux/errno.h, which is an alias for uapi/asm/errno.h. There is no
>> 524 in include/uapi/asm-generic/errno.h or
>> include/uapi/asm-generic/errno-base.h
>>
>> The codes in include/linux/errno.h should be translated for userspace.
>> This does look like a bug in the kernel tls code.
>
> Hmm... git grep ENOTSUPP has 1,516 hits. I haven't checked if it
> gets translated in one place, or if it gets done in a kazillion places.
Definitely more than one, but probably less than a kazillion.
I believe the userspace wrappers usually translates errors from the
lower levels to something conforming to the documented userspace API.
My version of setsockopt(2) says
RETURN VALUE
On success, zero is returned for the standard options. On
error, -1 is returned, and errno is set appropriately.
Netfilter allows the programmer to define custom socket op‐
tions with associated handlers; for such options, the re‐
turn value on success is the value returned by the handler.
ERRORS
EBADF The argument sockfd is not a valid file descrip‐
tor.
EFAULT The address pointed to by optval is not in a
valid part of the process address space. For
getsockopt(), this error may also be returned if
optlen is not in a valid part of the process ad‐
dress space.
EINVAL optlen invalid in setsockopt(). In some cases
this error can also occur for an invalid value in
optval (e.g., for the IP_ADD_MEMBERSHIP option
described in ip(7)).
ENOPROTOOPT
The option is unknown at the level indicated.
ENOTSOCK The file descriptor sockfd does not refer to a
socket.
If you look at e.g. udp_lib_setsockopt() you'll see that it conforms
strictly to this. I don't know why do_tcp_setsockopt() doesn't.
Bjørn
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
next prev parent reply other threads:[~2019-11-30 10:11 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-29 19:36 Kernel TLS Jeffrey Walton
2019-11-29 19:46 ` Alexander Mihalicyn
2019-11-29 19:48 ` Valentin Vidić
2019-11-29 19:57 ` Jeffrey Walton
2019-11-29 20:04 ` Jeffrey Walton
2019-11-30 4:37 ` Jeffrey Walton
2019-11-30 6:16 ` Alexander Mihalicyn
2019-11-30 6:40 ` Valdis Klētnieks
2019-11-30 8:13 ` Bjørn Mork
2019-11-30 9:11 ` Valdis Klētnieks
2019-11-30 10:10 ` Bjørn Mork [this message]
2019-11-30 10:34 ` Valdis Klētnieks
2019-11-30 12:54 ` [PATCH] net/tls: Fix return values for setsockopt Valentin Vidic
2019-11-30 13:15 ` Jeffrey Walton
2019-11-30 13:31 ` Valentin Vidić
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=87tv6loes5.fsf@miraculix.mork.no \
--to=bjorn@mork.no \
--cc=kernelnewbies@kernelnewbies.org \
--cc=noloader@gmail.com \
--cc=valdis.kletnieks@vt.edu \
/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).