diff options
author | Stephen Smalley <sds@tycho.nsa.gov> | 2012-02-21 14:27:00 -0500 |
---|---|---|
committer | Stephen Smalley <sds@tycho.nsa.gov> | 2012-02-21 14:27:00 -0500 |
commit | cd88c5c44f93ca14828bdae024fae6e0287ba71d (patch) | |
tree | 983f55aeda712db61e331ad68180456a75ff8d3a /test/dispol.c | |
parent | 8c48de15b1afeb1cd01a753195a29b1a7811dbfe (diff) | |
download | checkpolicy-cd88c5c44f93ca14828bdae024fae6e0287ba71d.tar.gz |
checkpolicy 2.1.8
Diffstat (limited to 'test/dispol.c')
-rw-r--r-- | test/dispol.c | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/test/dispol.c b/test/dispol.c index ee2cf02..f41acdc 100644 --- a/test/dispol.c +++ b/test/dispol.c @@ -157,7 +157,7 @@ int render_av_rule(avtab_key_t * key, avtab_datum_t * datum, uint32_t what, int display_avtab(avtab_t * a, uint32_t what, policydb_t * p, FILE * fp) { - int i; + unsigned int i; avtab_ptr_t cur; avtab_t expa; @@ -184,7 +184,7 @@ int display_avtab(avtab_t * a, uint32_t what, policydb_t * p, FILE * fp) int display_bools(policydb_t * p, FILE * fp) { - int i; + unsigned int i; for (i = 0; i < p->p_bools.nprim; i++) { fprintf(fp, "%s : %d\n", p->p_bool_val_to_name[i], @@ -304,7 +304,7 @@ static void display_policycaps(policydb_t * p, FILE * fp) ebitmap_node_t *node; const char *capname; char buf[64]; - int i; + unsigned int i; fprintf(fp, "policy capabilities:\n"); ebitmap_for_each_bit(&p->policycaps, node, i) { @@ -329,7 +329,7 @@ static void display_id(policydb_t *p, FILE *fp, uint32_t symbol_type, static void display_permissive(policydb_t *p, FILE *fp) { ebitmap_node_t *node; - int i; + unsigned int i; fprintf(fp, "permissive sids:\n"); ebitmap_for_each_bit(&p->permissive_map, node, i) { @@ -341,18 +341,31 @@ static void display_permissive(policydb_t *p, FILE *fp) } } +static void display_role_trans(policydb_t *p, FILE *fp) +{ + role_trans_t *rt; + + fprintf(fp, "role_trans rules:\n"); + for (rt = p->role_tr; rt; rt = rt->next) { + display_id(p, fp, SYM_ROLES, rt->role - 1, ""); + display_id(p, fp, SYM_TYPES, rt->type - 1, ""); + display_id(p, fp, SYM_CLASSES, rt->tclass - 1, ":"); + display_id(p, fp, SYM_ROLES, rt->new_role - 1, ""); + fprintf(fp, "\n"); + } +} + static void display_filename_trans(policydb_t *p, FILE *fp) { filename_trans_t *ft; fprintf(fp, "filename_trans rules:\n"); for (ft = p->filename_trans; ft; ft = ft->next) { - fprintf(fp, "%s\n", ft->name); display_id(p, fp, SYM_TYPES, ft->stype - 1, ""); display_id(p, fp, SYM_TYPES, ft->ttype - 1, ""); display_id(p, fp, SYM_CLASSES, ft->tclass - 1, ":"); display_id(p, fp, SYM_TYPES, ft->otype - 1, ""); - fprintf(fp, "\n"); + fprintf(fp, " %s\n", ft->name); } } @@ -366,6 +379,7 @@ int menu() printf("5) display conditional bools\n"); printf("6) display conditional expressions\n"); printf("7) change a boolean value\n"); + printf("8) display role transitions\n"); printf("\n"); printf("c) display policy capabilities\n"); printf("p) display the list of permissive types\n"); @@ -484,6 +498,9 @@ int main(int argc, char **argv) change_bool(name, state, &policydb, out_fp); free(name); break; + case '8': + display_role_trans(&policydb, out_fp); + break; case 'c': display_policycaps(&policydb, out_fp); break; |