bpf: Fix fds_example SIGSEGV error
[ Upstream commit eef8a42d6ce087d1c81c960ae0d14f955b742feb ] The `BPF_LOG_BUF_SIZE`'s value is `UINT32_MAX >> 8`, so define an array with it on stack caused an overflow. Signed-off-by: Wenbo Zhang <ethercflow@gmail.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Andrii Nakryiko <andriin@fb.com> Link: https://lore.kernel.org/bpf/20200710092035.28919-1-ethercflow@gmail.com Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
4360d9b560
commit
5908a17b24
@ -30,6 +30,8 @@
|
|||||||
#define BPF_M_MAP 1
|
#define BPF_M_MAP 1
|
||||||
#define BPF_M_PROG 2
|
#define BPF_M_PROG 2
|
||||||
|
|
||||||
|
char bpf_log_buf[BPF_LOG_BUF_SIZE];
|
||||||
|
|
||||||
static void usage(void)
|
static void usage(void)
|
||||||
{
|
{
|
||||||
printf("Usage: fds_example [...]\n");
|
printf("Usage: fds_example [...]\n");
|
||||||
@ -57,7 +59,6 @@ static int bpf_prog_create(const char *object)
|
|||||||
BPF_EXIT_INSN(),
|
BPF_EXIT_INSN(),
|
||||||
};
|
};
|
||||||
size_t insns_cnt = sizeof(insns) / sizeof(struct bpf_insn);
|
size_t insns_cnt = sizeof(insns) / sizeof(struct bpf_insn);
|
||||||
char bpf_log_buf[BPF_LOG_BUF_SIZE];
|
|
||||||
struct bpf_object *obj;
|
struct bpf_object *obj;
|
||||||
int prog_fd;
|
int prog_fd;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user