Re: [PATCH v11 25/25] x86/cet/shstk: Add arch_prctl functions for shadow stack

From: Andy Lutomirski
Date: Fri Aug 28 2020 - 13:39:30 EST


On Fri, Aug 28, 2020 at 4:38 AM H.J. Lu <hjl.tools@xxxxxxxxx> wrote:
>
> On Thu, Aug 27, 2020 at 11:24 PM Florian Weimer <fweimer@xxxxxxxxxx> wrote:
> >
> > * H. J. Lu:
> >
> > > Can you think of ANY issues of passing more arguments to arch_prctl?
> >
> > On x32, the glibc arch_prctl system call wrapper only passes two
> > arguments to the kernel, and applications have no way of detecting that.
> > musl only passes two arguments on all architectures. It happens to work
> > anyway with default compiler flags, but that's an accident.
>
> In the current glibc, there is no arch_prctl wrapper for i386. There are
> arch_prctl wrappers with 2 arguments for x86-64 and x32. But this isn't an
> issue for glibc since glibc is both the provider and the user of the new
> arch_prctl extension. Besides,
>
> long syscall(long number, ...);
>
> is always available.

Userspace is probably full of tools and libraries that contain tables
of system calls and their signatures. Think tracing, audit, container
management, etc. I don't know how they will react to the addition of
new arguments.