From: Jeff Davis Date: Thu, 14 Oct 2021 19:26:26 +0000 (-0700) Subject: Check criticalSharedRelcachesBuilt in GetSharedSecurityLabel(). X-Git-Tag: REL9_6_24~25 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ae6abeb88047d689e6525a5725cffcd8fc43fe27;p=thirdparty%2Fpostgresql.git 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 --- diff --git a/src/backend/commands/seclabel.c b/src/backend/commands/seclabel.c index 5bd7e124c18..c00cebda4ee 100644 --- a/src/backend/commands/seclabel.c +++ b/src/backend/commands/seclabel.c @@ -168,8 +168,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))