Lines Matching refs:profile
67 struct aa_profile *profile = labels_profile(aa_current_raw_label()); in audit_iface() local
79 return aa_audit(AUDIT_APPARMOR_STATUS, profile, &ad, audit_cb); in audit_iface()
535 static bool unpack_xattrs(struct aa_ext *e, struct aa_profile *profile) in unpack_xattrs() argument
545 profile->attach.xattr_count = size; in unpack_xattrs()
546 profile->attach.xattrs = kcalloc(size, sizeof(char *), GFP_KERNEL); in unpack_xattrs()
547 if (!profile->attach.xattrs) in unpack_xattrs()
550 if (!aa_unpack_strdup(e, &profile->attach.xattrs[i], NULL)) in unpack_xattrs()
847 struct aa_profile *profile = NULL; in unpack_profile() local
883 profile = aa_alloc_profile(name, NULL, GFP_KERNEL); in unpack_profile()
884 if (!profile) { in unpack_profile()
889 rules = profile->label.rules[0]; in unpack_profile()
892 (void) aa_unpack_str(e, &profile->rename, "rename"); in unpack_profile()
895 (void) aa_unpack_str(e, &profile->attach.xmatch_str, "attach"); in unpack_profile()
898 error = unpack_pdb(e, &profile->attach.xmatch, false, false, &info); in unpack_profile()
905 if (profile->attach.xmatch->dfa) { in unpack_profile()
910 profile->attach.xmatch_len = tmp; in unpack_profile()
911 profile->attach.xmatch->start[AA_CLASS_XMATCH] = DFA_START; in unpack_profile()
912 if (!profile->attach.xmatch->perms) { in unpack_profile()
913 error = aa_compat_map_xmatch(profile->attach.xmatch); in unpack_profile()
923 profile->disconnected = disconnected; in unpack_profile()
926 (void) aa_unpack_u32(e, &profile->signal, "kill"); in unpack_profile()
927 if (profile->signal < 1 || profile->signal > MAXMAPPED_SIG) { in unpack_profile()
940 profile->label.flags |= FLAG_HAT; in unpack_profile()
942 profile->label.flags |= FLAG_DEBUG1; in unpack_profile()
944 profile->label.flags |= FLAG_DEBUG2; in unpack_profile()
948 profile->mode = APPARMOR_COMPLAIN; in unpack_profile()
950 profile->mode = APPARMOR_ENFORCE; in unpack_profile()
952 profile->mode = APPARMOR_KILL; in unpack_profile()
954 profile->mode = APPARMOR_UNCONFINED; in unpack_profile()
955 profile->label.flags |= FLAG_UNCONFINED; in unpack_profile()
957 profile->mode = APPARMOR_USER; in unpack_profile()
964 profile->audit = AUDIT_ALL; in unpack_profile()
970 if (aa_unpack_u32(e, &profile->path_flags, "path_flags")) in unpack_profile()
971 profile->path_flags |= profile->label.flags & in unpack_profile()
975 profile->path_flags = PATH_MEDIATE_DELETED; in unpack_profile()
1013 if (!unpack_xattrs(e, profile)) { in unpack_profile()
1078 profile->data = kzalloc(sizeof(*profile->data), GFP_KERNEL); in unpack_profile()
1079 if (!profile->data) { in unpack_profile()
1090 if (rhashtable_init(profile->data, ¶ms)) { in unpack_profile()
1113 if (rhashtable_insert_fast(profile->data, &data->head, in unpack_profile()
1114 profile->data->p)) { in unpack_profile()
1134 aa_compute_profile_mediates(profile); in unpack_profile()
1136 return profile; in unpack_profile()
1146 if (profile) in unpack_profile()
1150 audit_iface(profile, NULL, name, info, e, error); in unpack_profile()
1151 aa_free_profile(profile); in unpack_profile()
1287 static int verify_profile(struct aa_profile *profile) in verify_profile() argument
1289 struct aa_ruleset *rules = profile->label.rules[0]; in verify_profile()
1296 audit_iface(profile, NULL, NULL, in verify_profile()
1303 audit_iface(profile, NULL, NULL, in verify_profile()
1310 audit_iface(profile, NULL, NULL, in verify_profile()
1315 audit_iface(profile, NULL, NULL, in verify_profile()
1319 if (!verify_perms(profile->attach.xmatch)) { in verify_profile()
1320 audit_iface(profile, NULL, NULL, in verify_profile()
1460 struct aa_profile *profile = NULL; in aa_unpack() local
1477 profile = unpack_profile(&e, &ns_name); in aa_unpack()
1478 if (IS_ERR(profile)) { in aa_unpack()
1479 error = PTR_ERR(profile); in aa_unpack()
1483 error = verify_profile(profile); in aa_unpack()
1488 error = aa_calc_profile_hash(profile, e.version, start, in aa_unpack()
1499 ent->new = profile; in aa_unpack()
1523 aa_put_profile(profile); in aa_unpack()