diff --git a/[refs] b/[refs] index cfe95b60db76..b9ab11f5be19 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f74024d9f05caa570dcf7582b498bbf011943491 +refs/heads/master: 2563fa595447bba6a73e6c58c4bbf11ac0f28931 diff --git a/trunk/net/ipv6/datagram.c b/trunk/net/ipv6/datagram.c index e2480691c220..83037af4fa7b 100644 --- a/trunk/net/ipv6/datagram.c +++ b/trunk/net/ipv6/datagram.c @@ -654,7 +654,7 @@ int datagram_send_ctl(struct net *net, struct sock *sk, if (addr_type != IPV6_ADDR_ANY) { int strict = __ipv6_addr_src_scope(addr_type) <= IPV6_ADDR_SCOPE_LINKLOCAL; - if (!inet_sk(sk)->transparent && + if (!(inet_sk(sk)->freebind || inet_sk(sk)->transparent) && !ipv6_chk_addr(net, &src_info->ipi6_addr, strict ? dev : NULL, 0)) err = -EINVAL;