mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-16 20:25:34 +00:00
Merge pull request #3476 from brauner/2020-07-05/fixes
cgroups: handle empty bpf log buffer
This commit is contained in:
commit
3e519859bd
@ -325,26 +325,30 @@ static int bpf_program_load_kernel(struct bpf_program *prog, char *log_buf,
|
|||||||
{
|
{
|
||||||
union bpf_attr attr;
|
union bpf_attr attr;
|
||||||
|
|
||||||
|
if ((log_size != 0 && !log_buf) || (log_size == 0 && log_buf))
|
||||||
|
return ret_errno(EINVAL);
|
||||||
|
|
||||||
if (prog->kernel_fd >= 0) {
|
if (prog->kernel_fd >= 0) {
|
||||||
memset(log_buf, 0, log_size);
|
memset(log_buf, 0, log_size);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
attr = (union bpf_attr){
|
attr = (union bpf_attr){
|
||||||
.prog_type = prog->prog_type,
|
.prog_type = prog->prog_type,
|
||||||
.insns = PTR_TO_UINT64(prog->instructions),
|
.insns = PTR_TO_UINT64(prog->instructions),
|
||||||
.insn_cnt = prog->n_instructions,
|
.insn_cnt = prog->n_instructions,
|
||||||
.license = PTR_TO_UINT64("GPL"),
|
.license = PTR_TO_UINT64("GPL"),
|
||||||
.log_buf = PTR_TO_UINT64(log_buf),
|
.log_buf = PTR_TO_UINT64(log_buf),
|
||||||
.log_level = log_level,
|
.log_level = log_level,
|
||||||
.log_size = log_size,
|
.log_size = log_size,
|
||||||
};
|
};
|
||||||
|
|
||||||
prog->kernel_fd = bpf(BPF_PROG_LOAD, &attr, sizeof(attr));
|
prog->kernel_fd = bpf(BPF_PROG_LOAD, &attr, sizeof(attr));
|
||||||
if (prog->kernel_fd < 0)
|
if (prog->kernel_fd < 0)
|
||||||
return log_error_errno(-1, errno, "Failed to load bpf program: %s", log_buf);
|
return log_error_errno(-1, errno, "Failed to load bpf program: %s",
|
||||||
|
log_buf ?: "(null)");
|
||||||
|
|
||||||
TRACE("Loaded bpf program: %s", log_buf);
|
TRACE("Loaded bpf program: %s", log_buf ?: "(null)");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user