def CapExec.flags.go
bend-osdev-caps@0.1.0.0 · exec.bend:105
import bend-osdev-caps@0.1.0.0/exec.bend as Exec
import Base
import bend-osdev-caps@0.1.0.0/caps.bend as C
105
106
107
108
109
110
111def CapExec.flags.go(noroot: Bool, r0: Bool, e0: Bool, priv: Bool, fc: Maybe<&2, C.CapFileSets>) -> CapExecFlags:
112 match noroot:
113 case True{}:
114 CapExec.flags.file(priv, False{}, fc)
115 case False{}:
116 match r0:
117 case True{}:
118 CapExecFlags{priv, Bool.or(e0, CapExec.fc_effective(fc)), C.CapSet.full(), C.CapSet.full()}
119 case False{}:
120 match e0:
121 case True{}:
122 CapExec.flags.suid_root(priv, fc)
123 case False{}:
124 CapExec.flags.file(priv, False{}, fc)