On Sun, Jan 16, 2022 at 11:58 PM Warner Losh <i...@bsdimp.com> wrote:

> > +    if (!lock_user_struct(VERIFY_WRITE, frame, frame_addr, 0)) {
>> > +        goto give_sigsegv;
>>
>> FreeBSD for Arm (haven't checked other BSDs or other archs)
>> gives a SIGILL for the "can't write signal frame to stack"
>> case, I think:
>>
>> https://github.com/freebsd/freebsd-src/blob/main/sys/arm/arm/exec_machdep.c#L316
>> I don't understand why they picked SIGILL, SIGSEGV seems much more
>> logical to me, but we should follow the kernel behaviour.
>>
>
> This is a good thing to find. I'm going to have to study all the
> architectures, but
> the first 5 I looked at all returned SIGILL, so this code has to change to
> reflect
> that...
>

Sorry to follow up my own message, but  this dates to 4.1BSD (4BSD sent a
SIGKILL),
but it's not present in V7, 32V or 3BSD.

So it's very old-school BSD behavior, dating from 1981 :)

Warner

Reply via email to