Messages in this thread | | | Date | Wed, 23 Nov 2022 12:56:38 +0100 | From | Oleg Nesterov <> | Subject | Re: [PATCH 1/1] Fix kill(-1,s) returning 0 on 0 kills |
| |
On 11/23, Petr Skocik wrote: > > On 11/23/22 11:30, Oleg Nesterov wrote: > > > >But I fail to understand the /*either all 0 or all -EINVAL*/ comment above.. > > > >Oleg. > > > > Thanks. The comment is explained in my reply to Kees Cook: > https://lkml.org/lkml/2022/11/22/1327. > I felt like making it because without it to me it suspiciously looks like > the > `if ( err != -EPERM) ret = err;` (or `if ( err != -EPERM) retval = err;` in > the original) could be masking > a non-EPERM failure with a later success, but it isn't because in this > context, all the non-EPERM return vals should either ALL be 0 or ALL be > -EINVAL.
Ah, now I see what did you mean, thanks.
Well, you are probably right, __send_signal_locked() won't fail even if __sigqueue_alloc() fails, because si_code = SI_USER.
Not sure we should rely on this, but I won't argue.
Oleg.
| |