On Sun, Jun 6, 2021 at 12:23 PM Michael Paquier <mich...@paquier.xyz> wrote: > > Hi all, > > While reading the code of pg_log_backend_memory_contexts(), I have > been surprised to see that the code would attempt to look at a PROC > entry based on the given input PID *before* checking if the function > has been called by a superuser. This does not strike me as a good > idea as this allows any users to call this function and to take > ProcArrayLock in shared mode, freely. > > It seems to me that we had better check for a superuser at the > beginning of the function, like in the attached.
pg_signal_backend still locks ProcArrayLock in shared mode first and then checks for the superuser permissions. Of course, it does that for the roleId i.e. superuser_arg(proc->roleId), but there's also superuser() check. With Regards, Bharath Rupireddy.