Lines Matching refs:dfa
418 * unpack_dfa - unpack a file rule dfa
420 * @flags: dfa flags to check
422 * returns dfa or ERR_PTR or NULL if no dfa
428 struct aa_dfa *dfa = NULL;
433 * The dfa is aligned with in the blob to 8 bytes
435 * alignment adjust needed by dfa unpack
442 dfa = aa_dfa_unpack(blob + pad, size - pad, flags);
444 if (IS_ERR(dfa))
445 return dfa;
449 return dfa;
675 * in the dfa accept table
734 policy->dfa = unpack_dfa(e, flags);
735 if (IS_ERR(policy->dfa)) {
736 error = PTR_ERR(policy->dfa);
737 policy->dfa = NULL;
738 *info = "failed to unpack - dfa";
740 } else if (!policy->dfa) {
742 *info = "missing required dfa";
749 * only unpack the following if a dfa is present
758 /* default start state for xmatch and file dfa */
762 policy->start[i] = aa_dfa_next(policy->dfa, policy->start[0],
770 /* TODO: move compat mapping here, requires dfa merging first */
863 if (profile->attach.xmatch.dfa) {
981 /* generic policy dfa - optional and may be NULL */
988 if (aa_dfa_next(rules->policy.dfa, rules->policy.start[0],
991 aa_dfa_next(rules->policy.dfa,
1005 rules->policy.dfa = aa_get_dfa(nulldfa);
1016 } else if (rules->file.dfa) {
1024 } else if (rules->policy.dfa &&
1026 rules->file.dfa = aa_get_dfa(rules->policy.dfa);
1037 rules->file.dfa = aa_get_dfa(nulldfa);
1177 * @dfa: the dfa to check accept indexes are in range
1180 static bool verify_dfa_accept_index(struct aa_dfa *dfa, int table_size)
1183 for (i = 0; i < dfa->tables[YYTD_ID_ACCEPT]->td_lolen; i++) {
1184 if (ACCEPT_TABLE(dfa)[i] >= table_size)
1249 if ((rules->file.dfa && !verify_dfa_accept_index(rules->file.dfa,
1251 (rules->policy.dfa &&
1252 !verify_dfa_accept_index(rules->policy.dfa, rules->policy.size))) {