Re: pg_signal_backend() asymmetry

Noah Misch <noah@leadboat.com>

From: Noah Misch <noah@leadboat.com>
To: Josh Kupershmidt <schmiddy@gmail.com>
Cc: Daniel Farina <daniel@heroku.com>, pgsql-hackers <pgsql-hackers@postgresql.org>, Magnus Hagander <magnus@hagander.net>
Date: 2012-09-26T20:54:43Z
Lists: pgsql-hackers
I'm marking this patch Ready for Committer.  I suggest backpatching it to 9.2;
the patch corrects an oversight in 9.2 changes.  There's more compatibility
value in backpatching than in retaining distinct behavior for 9.2 only.

On Thu, Jun 28, 2012 at 09:32:41AM -0700, Josh Kupershmidt wrote:
> ! 	if (!superuser())
>   	{
>   		/*
> ! 		 * Since the user is not superuser, check for matching roles.
>   		 */
> ! 		if (proc->roleId != GetUserId())
> ! 			return SIGNAL_BACKEND_NOPERMISSION;
>   	}

I would have collapsed the conditionals and deleted the obvious comment:

	if (!(superuser() || proc->roleId == GetUserId()))
		return SIGNAL_BACKEND_NOPERMISSION;

The committer can do that if desired; no need for another version.

Thanks,
nm