mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
[IPV6] NDISC: Fix is_router flag setting.
We did not send appropriate IsRouter flag if the forwarding setting is positive even value. Let's give 1/0 value to ndisc_send_na(). Also, existing users of ndisc_send_na() give 0/1 to override, we can omit redundant operation in that function. Bug hinted by Nicolas Dichtel <nicolas.dichtel@6wind.com>. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8814c4b533
commit
fc26d0abd5
@ -496,7 +496,7 @@ static void ndisc_send_na(struct net_device *dev, struct neighbour *neigh,
|
||||
msg->icmph.icmp6_unused = 0;
|
||||
msg->icmph.icmp6_router = router;
|
||||
msg->icmph.icmp6_solicited = solicited;
|
||||
msg->icmph.icmp6_override = !!override;
|
||||
msg->icmph.icmp6_override = override;
|
||||
|
||||
/* Set the target address. */
|
||||
ipv6_addr_copy(&msg->target, solicited_addr);
|
||||
@ -847,10 +847,7 @@ static void ndisc_recv_ns(struct sk_buff *skb)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (pneigh)
|
||||
is_router = pneigh->flags & NTF_ROUTER;
|
||||
else
|
||||
is_router = idev->cnf.forwarding;
|
||||
is_router = !!(pneigh ? pneigh->flags & NTF_ROUTER : idev->cnf.forwarding);
|
||||
|
||||
if (dad) {
|
||||
struct in6_addr maddr;
|
||||
|
Loading…
Reference in New Issue
Block a user