Re: [patch V2 26/50] signal: Get rid of resched_timer logic
From: Oleg Nesterov
Date: Thu Apr 18 2024 - 12:40:08 EST
On 04/11, Thomas Gleixner wrote:
>
> There is no reason for handing the *resched pointer argument through
> several functions just to check whether the signal is related to a self
> rearming posix timer.
Agreed, these changes looks good to me.
But,
> SI_TIMER is only used by the posix timer code and cannot be queued from
> user space.
Why? I think sigqueueinfo() can certainly use si_code = SI_TIMER, so
> @@ -1011,6 +1001,9 @@ static int __send_signal_locked(int sig,
>
> lockdep_assert_held(&t->sighand->siglock);
>
> + if (WARN_ON_ONCE(!is_si_special(info) && info->si_code == SI_TIMER))
> + return 0;
this can be easily triggered by userspace and thus looks wrong.
Oleg.