Re: [PATCH bpf-next 2/2] bpf: Add tests for bpf_lsm_set_bprm_opts

From: KP Singh
Date: Mon Nov 16 2020 - 09:49:26 EST


[...]

> +
> +#include "vmlinux.h"
> +#include <errno.h>
> +#include <bpf/bpf_helpers.h>
> +#include <bpf/bpf_tracing.h>
> +
> +char _license[] SEC("license") = "GPL";
> +
> +struct {
> + __uint(type, BPF_MAP_TYPE_TASK_STORAGE);
> + __uint(map_flags, BPF_F_NO_PREALLOC);
> + __type(key, int);
> + __type(value, int);
> +} secure_exec_task_map SEC(".maps");
> +
> +SEC("lsm/bprm_creds_for_exec")
> +int BPF_PROG(secure_exec, struct linux_binprm *bprm)
> +{
> + int *secureexec;
> +
> + secureexec = bpf_task_storage_get(&secure_exec_task_map,
> + bpf_get_current_task_btf(), 0,
> + BPF_LOCAL_STORAGE_GET_F_CREATE);
> + if (!secureexec)
> + return 0;
> +
> + if (*secureexec)
> + bpf_lsm_set_bprm_opts(bprm, BPF_LSM_F_BPRM_SECUREEXEC);

This can just be:

if (secureexec && *secureexec)
bpf_lsm_set_bprm_opts(bprm, BPF_LSM_F_BPRM_SECUREEXEC);

bpf_lsm_set_bprm_opts(bprm, BPF_LSM_F_BPRM_SECUREEXEC);

> + return 0;
> +}
> --
> 2.29.2.299.gdc1121823c-goog
>