diff options
author | Robert Haas | 2011-09-01 12:37:33 +0000 |
---|---|---|
committer | Robert Haas | 2011-09-01 12:38:40 +0000 |
commit | 4232c4b406c94b433c149ac792d7e68665948cf1 (patch) | |
tree | dd68778f4d0deae517fedba57b698e744ed66b30 /contrib/sepgsql/schema.c | |
parent | 3d14bd2563cc527f250eed8d6d83e3ff62318675 (diff) |
Userspace access vector cache for contrib/sepgsql.
KaiGai Kohei
Diffstat (limited to 'contrib/sepgsql/schema.c')
-rw-r--r-- | contrib/sepgsql/schema.c | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/contrib/sepgsql/schema.c b/contrib/sepgsql/schema.c index 0de89971fbc..aae68ef964b 100644 --- a/contrib/sepgsql/schema.c +++ b/contrib/sepgsql/schema.c @@ -65,35 +65,30 @@ sepgsql_schema_post_create(Oid namespaceId) void sepgsql_schema_relabel(Oid namespaceId, const char *seclabel) { - char *scontext = sepgsql_get_client_label(); - char *tcontext; - char *audit_name; + ObjectAddress object; + char *audit_name; - audit_name = getObjectDescriptionOids(NamespaceRelationId, namespaceId); + object.classId = NamespaceRelationId; + object.objectId = namespaceId; + object.objectSubId = 0; + audit_name = getObjectDescription(&object); /* * check db_schema:{setattr relabelfrom} permission */ - tcontext = sepgsql_get_label(NamespaceRelationId, namespaceId, 0); - - sepgsql_check_perms(scontext, - tcontext, - SEPG_CLASS_DB_SCHEMA, - SEPG_DB_SCHEMA__SETATTR | - SEPG_DB_SCHEMA__RELABELFROM, - audit_name, - true); - + sepgsql_avc_check_perms(&object, + SEPG_CLASS_DB_SCHEMA, + SEPG_DB_SCHEMA__SETATTR | + SEPG_DB_SCHEMA__RELABELFROM, + audit_name, + true); /* * check db_schema:{relabelto} permission */ - sepgsql_check_perms(scontext, - seclabel, - SEPG_CLASS_DB_SCHEMA, - SEPG_DB_SCHEMA__RELABELTO, - audit_name, - true); - - pfree(tcontext); + sepgsql_avc_check_perms_label(seclabel, + SEPG_CLASS_DB_SCHEMA, + SEPG_DB_SCHEMA__RELABELTO, + audit_name, + true); pfree(audit_name); } |