mirror of
https://github.com/postgres/postgres.git
synced 2025-06-23 14:01:44 +03:00
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
This commit is contained in:
@ -169,8 +169,8 @@ GetSharedSecurityLabel(const ObjectAddress *object, const char *provider)
|
|||||||
|
|
||||||
pg_shseclabel = heap_open(SharedSecLabelRelationId, AccessShareLock);
|
pg_shseclabel = heap_open(SharedSecLabelRelationId, AccessShareLock);
|
||||||
|
|
||||||
scan = systable_beginscan(pg_shseclabel, SharedSecLabelObjectIndexId, true,
|
scan = systable_beginscan(pg_shseclabel, SharedSecLabelObjectIndexId,
|
||||||
NULL, 3, keys);
|
criticalSharedRelcachesBuilt, NULL, 3, keys);
|
||||||
|
|
||||||
tuple = systable_getnext(scan);
|
tuple = systable_getnext(scan);
|
||||||
if (HeapTupleIsValid(tuple))
|
if (HeapTupleIsValid(tuple))
|
||||||
|
Reference in New Issue
Block a user