bpf: do not freeze if bpf lsm fails to set up
BPF LSM is cgroup unaware and it's set up is happening in core manager. It occures that the current implementation is too restrictive and causes pid 1 to freeze. Instead: * in bpf_lsm_setup set manager->restrict_fs pointer last, so it is an indicator that the set up was successful * check for manager->restrict_fs before applying unit options
This commit is contained in:
committed by
Yu Watanabe
parent
2bdd2e7ac9
commit
299d941723
@@ -1732,9 +1732,16 @@ static int apply_lock_personality(const Unit* u, const ExecContext *c) {
|
||||
|
||||
#if HAVE_LIBBPF
|
||||
static bool skip_lsm_bpf_unsupported(const Unit* u, const char* msg) {
|
||||
assert(u);
|
||||
assert(u->manager);
|
||||
|
||||
if (lsm_bpf_supported())
|
||||
return false;
|
||||
|
||||
/* lsm_bpf_setup succeeded */
|
||||
if (u->manager->restrict_fs)
|
||||
return false;
|
||||
|
||||
log_unit_debug(u, "LSM BPF not supported, skipping %s", msg);
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user