diff options
Diffstat (limited to 'net/ipv6/ping.c')
| -rw-r--r-- | net/ipv6/ping.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv6/ping.c b/net/ipv6/ping.c index c4835dbdfcff..f804c11e2146 100644 --- a/net/ipv6/ping.c +++ b/net/ipv6/ping.c @@ -114,7 +114,8 @@ static int ping_v6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)  	addr_type = ipv6_addr_type(daddr);  	if ((__ipv6_addr_needs_scope_id(addr_type) && !oif) ||  	    (addr_type & IPV6_ADDR_MAPPED) || -	    (oif && sk->sk_bound_dev_if && oif != sk->sk_bound_dev_if)) +	    (oif && sk->sk_bound_dev_if && oif != sk->sk_bound_dev_if && +	     l3mdev_master_ifindex_by_index(sock_net(sk), oif) != sk->sk_bound_dev_if))  		return -EINVAL;  	ipcm6_init_sk(&ipc6, np);  | 
