def AaFile.target.check

bend-osdev-apparmor@0.1.0.0 · rule_file.bend:368

import bend-osdev-apparmor@0.1.0.0/rule_file.bend as RuleFile
import Base
import bend-osdev-apparmor@0.1.0.0/perm.bend as P
import bend-osdev-apparmor@0.1.0.0/error.bend as E

368# a target needs an exec mode; with the permissions leading, l and a target
369# make a link rule, outside the model (apparmor_parser: "link and exec
370# perms conflict on a file rule using ->")
371def AaFile.target.check(t: Maybe<&2, List<&2, U32>>, +lead: Bool, fp: AaFPerms, src: E.AaSrc) -> Result<&2, &2, E.AaError, AaFPerms>:
372  match t:
373    case None{}:
374      Done{fp}
375    case Some{x}:
376      match fp:
377        case AaFPerms{+p, +e}:
378          Bool.pick(Result<&2, &2, E.AaError, AaFPerms>, Bool.and(AaFp.is_some(e), Bool.not(Bool.and(lead, P.AaPerms.has(p, 3n)))), Done{AaFPerms{p, e}}, Fail{E.AaSrc.perms(src)})

Uses (14)

Used by (1)