Messages in this thread | | | Subject | Re: [PATCH v21 06/26] x86/cet: Add control-protection fault handler | From | "Yu, Yu-cheng" <> | Date | Wed, 24 Feb 2021 11:52:33 -0800 |
| |
On 2/24/2021 11:42 AM, Borislav Petkov wrote: > On Wed, Feb 24, 2021 at 11:30:34AM -0800, Andy Lutomirski wrote: >> On Wed, Feb 24, 2021 at 11:20 AM Borislav Petkov <bp@alien8.de> wrote: >>> >>> On Wed, Feb 24, 2021 at 09:56:13AM -0800, Yu, Yu-cheng wrote: >>>> No. Maybe I am doing too much. The GP fault sets si_addr to zero, for >>>> example. So maybe do the same here? >>> >>> No, you're looking at this from the wrong angle. This is going to be >>> user-visible and the moment it gets upstream, it is cast in stone. >>> >>> So the whole use case of what luserspace needs to do or is going to do >>> or wants to do on a SEGV_CPERR, needs to be described, agreed upon by >>> people etc before it goes out. And thus clarified whether the address >>> gets copied out or not. >> >> I vote 0. The address is in ucontext->gregs[REG_RIP] [0] regardless. >> Why do we need to stick a copy somewhere else? >> >> [0] or however it's spelled. i can never remember. > > Fine with me. Let's have this documented in the manpage and then we can > move forward with this. > > Thx. >
The man page at https://man7.org/linux/man-pages/man2/sigaction.2.html says,
SIGILL, SIGFPE, SIGSEGV, SIGBUS, and SIGTRAP fill in si_addr with the address of the fault.
But it is not entirely true.
I will send a patch to update it, and another patch for the si_code.
-- Yu-cheng
| |