Pass the correct size to bpf_skb_set_tunnel_opt() in
ip6geneve_set_tunnel().

sizeof(gopt) returns the size of the pointer instead of the
actual Geneve option structure, resulting in an incorrect
option length being passed to the helper. Use
sizeof(local_gopt) to provide the proper structure size.

Signed-off-by: Faisal Bukhari <[email protected]>
---
 tools/testing/selftests/bpf/progs/test_tunnel_kern.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/bpf/progs/test_tunnel_kern.c 
b/tools/testing/selftests/bpf/progs/test_tunnel_kern.c
index 30f1de458669d..ca04d1d1ade4e 100644
--- a/tools/testing/selftests/bpf/progs/test_tunnel_kern.c
+++ b/tools/testing/selftests/bpf/progs/test_tunnel_kern.c
@@ -674,7 +674,7 @@ int ip6geneve_set_tunnel(struct __sk_buff *skb)
        gopt->length = 2; /* 4-byte multiple */
        *(int *) &gopt->opt_data = bpf_htonl(0xfeedbeef);
 
-       ret = bpf_skb_set_tunnel_opt(skb, gopt, sizeof(gopt));
+       ret = bpf_skb_set_tunnel_opt(skb, gopt, sizeof(local_gopt));
        if (ret < 0) {
                log_err(ret);
                return TC_ACT_SHOT;
-- 
2.43.0


Reply via email to