Message ID | 20200710092035.28919-1-ethercflow@gmail.com |
---|---|
State | Accepted |
Delegated to: | BPF Maintainers |
Headers | show |
Series | bpf: fix fds_example SIGSEGV error | expand |
On Fri, Jul 10, 2020 at 2:21 AM Wenbo Zhang <ethercflow@gmail.com> wrote: > > 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> > --- Acked-by: Andrii Nakryiko <andriin@fb.com> > 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 d5992f787232..59f45fef5110 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;
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> --- samples/bpf/fds_example.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)