mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-14 22:44:27 +08:00
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
@ -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 New Issue
Block a user