From: Peter Eisentraut Date: Thu, 6 Apr 2017 15:31:18 +0000 (-0400) Subject: Fix AclResult vs bool type mix-up X-Git-Tag: REL_10_BETA1~365 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=301ca0d9a2f82ade11b2e5039d348badd28334cf;p=postgresql Fix AclResult vs bool type mix-up Using AclResult as a bool or vice versa works by accident, but it's unusual and possibly confusing style, so write it out more explicitly. --- diff --git a/contrib/pgrowlocks/pgrowlocks.c b/contrib/pgrowlocks/pgrowlocks.c index 120d0eb8db..8dd561c02a 100644 --- a/contrib/pgrowlocks/pgrowlocks.c +++ b/contrib/pgrowlocks/pgrowlocks.c @@ -101,8 +101,9 @@ pgrowlocks(PG_FUNCTION_ARGS) /* check permissions: must have SELECT on table or be in pg_stat_scan_tables */ aclresult = pg_class_aclcheck(RelationGetRelid(rel), GetUserId(), - ACL_SELECT) || - is_member_of_role(GetUserId(), DEFAULT_ROLE_STAT_SCAN_TABLES); + ACL_SELECT); + if (aclresult != ACLCHECK_OK) + aclresult = is_member_of_role(GetUserId(), DEFAULT_ROLE_STAT_SCAN_TABLES) ? ACLCHECK_OK : ACLCHECK_NO_PRIV; if (aclresult != ACLCHECK_OK) aclcheck_error(aclresult, ACL_KIND_CLASS,