diff mbox series

bpf: fix fds_example SIGSEGV error

Message ID 20200710092035.28919-1-ethercflow@gmail.com
State Accepted
Delegated to: BPF Maintainers
Headers show
Series bpf: fix fds_example SIGSEGV error | expand

Commit Message

Wenbo Zhang July 10, 2020, 9:20 a.m. UTC
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(-)

Comments

Andrii Nakryiko July 10, 2020, 6:46 p.m. UTC | #1
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 mbox series

Patch

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;