Re: [PATCH v2 2/2] pid: fix cad_pid use-after-free race

From: Oleg Nesterov

Date: Sat Jul 18 2026 - 09:20:24 EST


On 07/17, Cen Zhang (Microsoft) wrote:
>
> int kill_cad_pid(int sig, int priv)
> {
> - return kill_pid(cad_pid, sig, priv);
> + struct pid *pid;
> + int ret;
> +
> + rcu_read_lock();
> + pid = get_pid(rcu_dereference(cad_pid));
> + rcu_read_unlock();
> +
> + ret = kill_pid(pid, sig, priv);
> + put_pid(pid);

Hmm. Why do we need get/put_pid() ? I think that

rcu_read_lock();
ret = kill_pid(rcu_dereference(cad_pid), sig, priv);
rcu_read_unlock();

return ret;

should work just fine?

Oleg.