Lines Matching refs:pdb

716 	struct aa_policydb *pdb;  in unpack_pdb()  local
722 pdb = aa_alloc_pdb(GFP_KERNEL); in unpack_pdb()
723 if (!pdb) in unpack_pdb()
726 size = unpack_perms_table(e, &pdb->perms); in unpack_pdb()
729 pdb->perms = NULL; in unpack_pdb()
733 pdb->size = size; in unpack_pdb()
735 if (pdb->perms) { in unpack_pdb()
747 pdb->dfa = unpack_dfa(e, flags); in unpack_pdb()
748 if (IS_ERR(pdb->dfa)) { in unpack_pdb()
749 error = PTR_ERR(pdb->dfa); in unpack_pdb()
750 pdb->dfa = NULL; in unpack_pdb()
753 } else if (!pdb->dfa) { in unpack_pdb()
765 if (!aa_unpack_u32(e, &pdb->start[0], "start")) in unpack_pdb()
767 pdb->start[0] = DFA_START; in unpack_pdb()
768 if (!aa_unpack_u32(e, &pdb->start[AA_CLASS_FILE], "dfa_start")) { in unpack_pdb()
770 pdb->start[AA_CLASS_FILE] = DFA_START; in unpack_pdb()
773 pdb->start[i] = aa_dfa_next(pdb->dfa, pdb->start[0], in unpack_pdb()
779 if (pdb->perms && !pdb->dfa->tables[YYTD_ID_ACCEPT2]) { in unpack_pdb()
781 u32 noents = pdb->dfa->tables[YYTD_ID_ACCEPT]->td_lolen; in unpack_pdb()
782 u16 tdflags = pdb->dfa->tables[YYTD_ID_ACCEPT]->td_flags; in unpack_pdb()
785 pdb->dfa->tables[YYTD_ID_ACCEPT2] = kvzalloc(tsize, GFP_KERNEL); in unpack_pdb()
786 if (!pdb->dfa->tables[YYTD_ID_ACCEPT2]) { in unpack_pdb()
790 pdb->dfa->tables[YYTD_ID_ACCEPT2]->td_lolen = noents; in unpack_pdb()
791 pdb->dfa->tables[YYTD_ID_ACCEPT2]->td_flags = tdflags; in unpack_pdb()
798 if (!unpack_trans_table(e, &pdb->trans) && required_trans) { in unpack_pdb()
803 if (!pdb->dfa && pdb->trans.table) in unpack_pdb()
804 aa_free_str_table(&pdb->trans); in unpack_pdb()
813 *policy = pdb; in unpack_pdb()
817 aa_put_pdb(pdb); in unpack_pdb()
1247 static bool verify_perms(struct aa_policydb *pdb) in verify_perms() argument
1252 for (i = 0; i < pdb->size; i++) { in verify_perms()
1253 if (!verify_perm(&pdb->perms[i])) in verify_perms()
1256 if ((pdb->perms[i].xindex & AA_X_TYPE_MASK) == AA_X_TABLE) { in verify_perms()
1257 xidx = pdb->perms[i].xindex & AA_X_INDEX_MASK; in verify_perms()
1258 if (xidx >= pdb->trans.size) in verify_perms()
1263 if (pdb->perms[i].tag && pdb->perms[i].tag >= pdb->trans.size) in verify_perms()
1265 if (pdb->perms[i].label && in verify_perms()
1266 pdb->perms[i].label >= pdb->trans.size) in verify_perms()
1271 aa_free_str_table(&pdb->trans); in verify_perms()
1272 } else if (pdb->trans.size > xmax + 1) { in verify_perms()
1273 if (!aa_resize_str_table(&pdb->trans, xmax + 1, GFP_KERNEL)) in verify_perms()