mirror of
https://github.com/torvalds/linux.git
synced 2024-12-24 11:51:27 +00:00
[IPV6] ADDRCONF: Fix possible inet6_ifaddr leakage with CONFIG_OPTIMISTIC_DAD.
The inet6_ifaddr for source address of RS is leaked if the address is not an optimistic address. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
95c385b4d5
commit
ca04356939
@ -627,7 +627,6 @@ void ndisc_send_rs(struct net_device *dev, struct in6_addr *saddr,
|
||||
struct sk_buff *skb;
|
||||
struct icmp6hdr *hdr;
|
||||
__u8 * opt;
|
||||
struct inet6_ifaddr *ifp;
|
||||
int send_sllao = dev->addr_len;
|
||||
int len;
|
||||
int err;
|
||||
@ -643,12 +642,12 @@ void ndisc_send_rs(struct net_device *dev, struct in6_addr *saddr,
|
||||
* supress the inclusion of the sllao.
|
||||
*/
|
||||
if (send_sllao) {
|
||||
ifp = ipv6_get_ifaddr(saddr, dev, 1);
|
||||
struct inet6_ifaddr *ifp = ipv6_get_ifaddr(saddr, dev, 1);
|
||||
if (ifp) {
|
||||
if (ifp->flags & IFA_F_OPTIMISTIC) {
|
||||
send_sllao=0;
|
||||
in6_ifa_put(ifp);
|
||||
send_sllao = 0;
|
||||
}
|
||||
in6_ifa_put(ifp);
|
||||
} else {
|
||||
send_sllao = 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user