diff options
author | David S. Miller <davem@davemloft.net> | 2011-09-16 01:09:02 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-09-16 01:09:02 -0400 |
commit | 52b9aca7ae8726d1fb41b97dd1d243d107fef11b (patch) | |
tree | 7acee111840bd25183513e9bde08e939ffd57be8 /net/ipv6/datagram.c | |
parent | 7756332f5b64c9c1535712b9679792e8bd4f0019 (diff) | |
parent | e2faeec2de9e2c73958e6ea6065dde1e8cd6f3a2 (diff) |
Merge branch 'master' of ../netdev/
Diffstat (limited to 'net/ipv6/datagram.c')
-rw-r--r-- | net/ipv6/datagram.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c index 9ef1831746ef..b46e9f88ce37 100644 --- a/net/ipv6/datagram.c +++ b/net/ipv6/datagram.c @@ -599,7 +599,7 @@ int datagram_recv_ctl(struct sock *sk, struct msghdr *msg, struct sk_buff *skb) return 0; } -int datagram_send_ctl(struct net *net, +int datagram_send_ctl(struct net *net, struct sock *sk, struct msghdr *msg, struct flowi6 *fl6, struct ipv6_txoptions *opt, int *hlimit, int *tclass, int *dontfrag) @@ -658,7 +658,8 @@ int datagram_send_ctl(struct net *net, if (addr_type != IPV6_ADDR_ANY) { int strict = __ipv6_addr_src_scope(addr_type) <= IPV6_ADDR_SCOPE_LINKLOCAL; - if (!ipv6_chk_addr(net, &src_info->ipi6_addr, + if (!inet_sk(sk)->transparent && + !ipv6_chk_addr(net, &src_info->ipi6_addr, strict ? dev : NULL, 0)) err = -EINVAL; else |