Thread (71 messages) 71 messages, 11 authors, 2020-07-24

Re: [PATCH v10 26/26] x86/cet/shstk: Add arch_prctl functions for shadow stack

From: Eugene Syromiatnikov <hidden>
Date: 2020-05-22 17:29:58
Also in: linux-arch, linux-doc, linux-mm, lkml

On Fri, May 22, 2020 at 10:17:43AM -0700, Yu-cheng Yu wrote:
On Thu, 2020-05-21 at 15:42 -0700, Kees Cook wrote:
quoted
On Wed, Apr 29, 2020 at 03:07:32PM -0700, Yu-cheng Yu wrote:
[...]
quoted
quoted
+
+int prctl_cet(int option, u64 arg2)
+{
+	struct cet_status *cet;
+
+	if (!IS_ENABLED(CONFIG_X86_INTEL_CET))
+		return -EINVAL;
Using -EINVAL here means userspace can't tell the difference between an
old kernel and a kernel not built with CONFIG_X86_INTEL_CET. Perhaps
-ENOTSUPP?
Looked into this.  The kernel and GLIBC are not in sync.  So maybe we still use
EINVAL here?

Yu-cheng



In kernel:
----------

#define EOPNOTSUPP	95
#define ENOTSUPP 	524

In GLIBC:
---------

printf("ENOTSUP=%d\n", ENOTSUP);
printf("EOPNOTSUPP=%d\n", EOPNOTSUPP);
printf("%s=524\n", strerror(524));
 
ENOTSUP=95
EOPNOTSUPP=95
Unknown error 524=524
EOPNOTSUPP/ENOTSUP/ENOTSUPP is actually a mess, it's summarized recently
by Michael Kerrisk[1].  From the kernel's point of view, I think it
would be reasonable to return EOPNOTSUPP, and expect that the userspace
would use ENOTSUP to match against it.

[1] https://lore.kernel.org/linux-man/cb4c685b-6c5d-9c16-aade-0c95e57de4b9@gmail.com/ (local)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help