summaryrefslogtreecommitdiff
path: root/src/core/bpf-lsm.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2022-05-17 10:11:05 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2022-05-17 10:16:27 +0200
commit389db516df2106bf50d7c83192a05f033baa4c2b (patch)
tree8ac0162cda6b41b5b152b96e3cb34d689b042625 /src/core/bpf-lsm.c
parent9b7c8253f9d396edcee0dac4e8155ae1dac93bc4 (diff)
downloadsystemd-389db516df2106bf50d7c83192a05f033baa4c2b.tar.gz
core/bpf: lsm_bpf_supported() returns a boolean
The code was corret, but confusing, because it was treating the int as a boolean.
Diffstat (limited to 'src/core/bpf-lsm.c')
-rw-r--r--src/core/bpf-lsm.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/core/bpf-lsm.c b/src/core/bpf-lsm.c
index 83f3199349..174aa259c0 100644
--- a/src/core/bpf-lsm.c
+++ b/src/core/bpf-lsm.c
@@ -125,7 +125,7 @@ static int mac_bpf_use(void) {
}
}
-int lsm_bpf_supported(void) {
+bool lsm_bpf_supported(void) {
_cleanup_(restrict_fs_bpf_freep) struct restrict_fs_bpf *obj = NULL;
static int supported = -1;
int r;
@@ -136,44 +136,44 @@ int lsm_bpf_supported(void) {
r = dlopen_bpf();
if (r < 0) {
log_info_errno(r, "Failed to open libbpf, LSM BPF is not supported: %m");
- return supported = 0;
+ return (supported = false);
}
r = cg_unified_controller(SYSTEMD_CGROUP_CONTROLLER);
if (r < 0) {
log_warning_errno(r, "Can't determine whether the unified hierarchy is used: %m");
- return supported = 0;
+ return (supported = false);
}
if (r == 0) {
log_info_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
"Not running with unified cgroup hierarchy, LSM BPF is not supported");
- return supported = 0;
+ return (supported = false);
}
r = mac_bpf_use();
if (r < 0) {
log_warning_errno(r, "Can't determine whether the BPF LSM module is used: %m");
- return supported = 0;
+ return (supported = false);
}
if (r == 0) {
log_info_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
"BPF LSM hook not enabled in the kernel, LSM BPF not supported");
- return supported = 0;
+ return (supported = false);
}
r = prepare_restrict_fs_bpf(&obj);
if (r < 0)
- return supported = 0;
+ return (supported = false);
if (!bpf_can_link_lsm_program(obj->progs.restrict_filesystems)) {
log_warning_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
"Failed to link BPF program. Assuming BPF is not available");
- return supported = 0;
+ return (supported = false);
}
- return supported = 1;
+ return (supported = true);
}
int lsm_bpf_setup(Manager *m) {
@@ -297,8 +297,8 @@ void lsm_bpf_destroy(struct restrict_fs_bpf *prog) {
restrict_fs_bpf__destroy(prog);
}
#else /* ! BPF_FRAMEWORK */
-int lsm_bpf_supported(void) {
- return 0;
+bool lsm_bpf_supported(void) {
+ return false;
}
int lsm_bpf_setup(Manager *m) {