net: make ipv6 PKTINFO honour freebind
This just makes it possible to spoof source IPv6 address on a socket without having to create and bind a new socket for every source IP we wish to spoof. Signed-off-by: Maciej Żenczykowski <maze@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f74024d9f0
commit
2563fa5954
1 changed files with 1 additions and 1 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue