Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56f0f84e authored by Anton Protopopov's avatar Anton Protopopov Committed by Daniel Borkmann
Browse files

bpf: fix the check that forwarding is enabled in bpf_ipv6_fib_lookup



The bpf_ipv6_fib_lookup function should return BPF_FIB_LKUP_RET_FWD_DISABLED
when forwarding is disabled for the input device.  However instead of checking
if forwarding is enabled on the input device, it checked the global
net->ipv6.devconf_all->forwarding flag.  Change it to behave as expected.

Fixes: 87f5fc7e ("bpf: Provide helper to do forwarding lookups in kernel FIB table")
Signed-off-by: default avatarAnton Protopopov <a.s.protopopov@gmail.com>
Acked-by: default avatarToke Høiland-Jørgensen <toke@redhat.com>
Reviewed-by: default avatarDavid Ahern <dsahern@gmail.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
parent 4fddbf8a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -4737,7 +4737,7 @@ static int bpf_ipv6_fib_lookup(struct net *net, struct bpf_fib_lookup *params,
		return -ENODEV;

	idev = __in6_dev_get_safely(dev);
	if (unlikely(!idev || !net->ipv6.devconf_all->forwarding))
	if (unlikely(!idev || !idev->cnf.forwarding))
		return BPF_FIB_LKUP_RET_FWD_DISABLED;

	if (flags & BPF_FIB_LOOKUP_OUTPUT) {