diff options
author | Jeff Davis <jdavis@postgresql.org> | 2021-10-14 12:24:22 -0700 |
---|---|---|
committer | Jeff Davis <jdavis@postgresql.org> | 2021-10-14 12:24:22 -0700 |
commit | 0b90f1c4c329f2be8ede10722a99a856020c0169 (patch) | |
tree | af4a411232419129dda6c10aa82009fc8b9d124a /src | |
parent | fd059ac2e461af922c7a18a7ac1cab8ad56c6353 (diff) | |
download | postgresql-0b90f1c4c329f2be8ede10722a99a856020c0169.tar.gz postgresql-0b90f1c4c329f2be8ede10722a99a856020c0169.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')
-rw-r--r-- | src/backend/commands/seclabel.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/commands/seclabel.c b/src/backend/commands/seclabel.c index 69067142986..862f1756c52 100644 --- a/src/backend/commands/seclabel.c +++ b/src/backend/commands/seclabel.c @@ -243,8 +243,8 @@ GetSharedSecurityLabel(const ObjectAddress *object, const char *provider) pg_shseclabel = table_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)) |