| From cf090491c56e67442afc20ede1b0e388091e876c Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 10 Jul 2020 05:20:35 -0400 |
| Subject: bpf: Fix fds_example SIGSEGV error |
| |
| From: Wenbo Zhang <ethercflow@gmail.com> |
| |
| [ 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> |
| --- |
| samples/bpf/fds_example.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/samples/bpf/fds_example.c b/samples/bpf/fds_example.c |
| index d5992f7872328..59f45fef51109 100644 |
| --- a/samples/bpf/fds_example.c |
| +++ b/samples/bpf/fds_example.c |
| @@ -30,6 +30,8 @@ |
| #define BPF_M_MAP 1 |
| #define BPF_M_PROG 2 |
| |
| +char bpf_log_buf[BPF_LOG_BUF_SIZE]; |
| + |
| static void usage(void) |
| { |
| printf("Usage: fds_example [...]\n"); |
| @@ -57,7 +59,6 @@ static int bpf_prog_create(const char *object) |
| BPF_EXIT_INSN(), |
| }; |
| size_t insns_cnt = sizeof(insns) / sizeof(struct bpf_insn); |
| - char bpf_log_buf[BPF_LOG_BUF_SIZE]; |
| struct bpf_object *obj; |
| int prog_fd; |
| |
| -- |
| 2.25.1 |
| |