[lxc-devel] [lxc/master] cgroups: handle empty bpf log buffer
brauner on Github
lxc-bot at linuxcontainers.org
Sun Jul 5 19:05:17 UTC 2020
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 502 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20200705/25eaa162/attachment.bin>
-------------- next part --------------
From fddbd86638a1866f763f61c1fd70ef9bb7a429b0 Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Sun, 5 Jul 2020 21:04:07 +0200
Subject: [PATCH] cgroups: handle empty bpf log buffer
Link: https://launchpadlibrarian.net/487274879/buildlog_ubuntu-eoan-amd64.lxc_1:4.0.3+master~20200705-1541-0ubuntu1~eoan_BUILDING.txt.gz
Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
src/lxc/cgroups/cgroup2_devices.c | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
diff --git a/src/lxc/cgroups/cgroup2_devices.c b/src/lxc/cgroups/cgroup2_devices.c
index fd60d5a49b..422d70d221 100644
--- a/src/lxc/cgroups/cgroup2_devices.c
+++ b/src/lxc/cgroups/cgroup2_devices.c
@@ -325,26 +325,30 @@ static int bpf_program_load_kernel(struct bpf_program *prog, char *log_buf,
{
union bpf_attr attr;
+ if ((log_size != 0 && !log_buf) || (log_size == 0 && log_buf))
+ return ret_errno(EINVAL);
+
if (prog->kernel_fd >= 0) {
memset(log_buf, 0, log_size);
return 0;
}
attr = (union bpf_attr){
- .prog_type = prog->prog_type,
- .insns = PTR_TO_UINT64(prog->instructions),
- .insn_cnt = prog->n_instructions,
- .license = PTR_TO_UINT64("GPL"),
- .log_buf = PTR_TO_UINT64(log_buf),
- .log_level = log_level,
- .log_size = log_size,
+ .prog_type = prog->prog_type,
+ .insns = PTR_TO_UINT64(prog->instructions),
+ .insn_cnt = prog->n_instructions,
+ .license = PTR_TO_UINT64("GPL"),
+ .log_buf = PTR_TO_UINT64(log_buf),
+ .log_level = log_level,
+ .log_size = log_size,
};
prog->kernel_fd = bpf(BPF_PROG_LOAD, &attr, sizeof(attr));
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;
}
More information about the lxc-devel
mailing list