OSDN Git Service

ipv6: fix a typo in fib6_rule_lookup()
authorEric Dumazet <edumazet@google.com>
Thu, 19 Sep 2019 17:12:36 +0000 (10:12 -0700)
committerJakub Kicinski <jakub.kicinski@netronome.com>
Sat, 21 Sep 2019 02:17:57 +0000 (19:17 -0700)
Yi Ren reported an issue discovered by syzkaller, and bisected
to the cited commit.

Many thanks to Yi, this trivial patch does not reflect the patient
work that has been done.

Fixes: d64a1f574a29 ("ipv6: honor RT6_LOOKUP_F_DST_NOREF in rule lookup logic")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Wei Wang <weiwan@google.com>
Bisected-and-reported-by: Yi Ren <c4tren@gmail.com>
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
net/ipv6/ip6_fib.c

index 87f47bc..6e2af41 100644 (file)
@@ -318,7 +318,7 @@ struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi6 *fl6,
        if (rt->dst.error == -EAGAIN) {
                ip6_rt_put_flags(rt, flags);
                rt = net->ipv6.ip6_null_entry;
-               if (!(flags | RT6_LOOKUP_F_DST_NOREF))
+               if (!(flags & RT6_LOOKUP_F_DST_NOREF))
                        dst_hold(&rt->dst);
        }