aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/seclabel.c
diff options
context:
space:
mode:
authorJeff Davis <jdavis@postgresql.org>2021-10-14 12:25:30 -0700
committerJeff Davis <jdavis@postgresql.org>2021-10-14 12:25:30 -0700
commit3f5d481ef5725494f8737db6f300a2c42afa915d (patch)
treec37eeae729e25eb5ad82cd9f27887fd1bb71a3e3 /src/backend/commands/seclabel.c
parent6287b8e195f37b09dacf9de89cf5c8ee925a3716 (diff)
downloadpostgresql-3f5d481ef5725494f8737db6f300a2c42afa915d.tar.gz
postgresql-3f5d481ef5725494f8737db6f300a2c42afa915d.zip
Check criticalSharedRelcachesBuilt in GetSharedSecurityLabel().
An extension may want to call GetSecurityLabel() on a shared object before the shared relcaches are fully initialized. For instance, a ClientAuthentication_hook might want to retrieve the security label on a role. Discussion: https://postgr.es/m/ecb7af0b26e3be1d96d291c8453a86f1f82d9061.camel@j-davis.com Backpatch-through: 9.6
Diffstat (limited to 'src/backend/commands/seclabel.c')
-rw-r--r--src/backend/commands/seclabel.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/commands/seclabel.c b/src/backend/commands/seclabel.c
index 5ee46905d84..1ce62b1e2ca 100644
--- a/src/backend/commands/seclabel.c
+++ b/src/backend/commands/seclabel.c
@@ -169,8 +169,8 @@ GetSharedSecurityLabel(const ObjectAddress *object, const char *provider)
pg_shseclabel = heap_open(SharedSecLabelRelationId, AccessShareLock);
- scan = systable_beginscan(pg_shseclabel, SharedSecLabelObjectIndexId, true,
- NULL, 3, keys);
+ scan = systable_beginscan(pg_shseclabel, SharedSecLabelObjectIndexId,
+ criticalSharedRelcachesBuilt, NULL, 3, keys);
tuple = systable_getnext(scan);
if (HeapTupleIsValid(tuple))