diff options
author | Cong Wang <amwang@redhat.com> | 2013-06-02 22:43:52 +0000 |
---|---|---|
committer | Manish Tuteja <mtuteja@nvidia.com> | 2014-04-01 03:12:02 -0700 |
commit | f3f116f515811a1d2e7c29b1163138d68451c7cc (patch) | |
tree | 5804df18076ab76d52bea4dee6a7ad17c916b765 | |
parent | 14c704403517e9e934860c847f82314855c8c1d2 (diff) |
ping: always initialize ->sin6_scope_id and ->sin6_flowinfo
[net-next commit c26d6b46da3ee86fa8a864347331e5513ca84c2b]
If we don't need scope id, we should initialize it to zero.
Same for ->sin6_flowinfo.
Bug 1412141
Change-Id: I74764edf3d0567f5ae094b2e83484cdfe05f6098
Cc: Lorenzo Colitti <lorenzo@google.com>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Cong Wang <amwang@redhat.com>
Acked-by: Lorenzo Colitti <lorenzo@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 14e41a18688ec8d52ea3163f7898455b52365854)
Reviewed-on: http://git-master/r/336270
(cherry picked from commit 68f4261657194f51c9d954f259825c76a72a00e2)
Reviewed-on: http://git-master/r/351006
(cherry picked from commit 70ed1a2d8a3ce85a4d6b9a5b32d6daf7781cc3c0)
Reviewed-on: http://git-master/r/390635
Reviewed-by: Jun Su <juns@nvidia.com>
Reviewed-by: Om Prakash Singh <omp@nvidia.com>
Reviewed-by: Liangcai Li <liangcail@nvidia.com>
Tested-by: Liangcai Li <liangcail@nvidia.com>
Reviewed-by: Manish Tuteja <mtuteja@nvidia.com>
-rw-r--r-- | net/ipv4/ping.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c index 7f38d35c62f1..a8d7ed062341 100644 --- a/net/ipv4/ping.c +++ b/net/ipv4/ping.c @@ -896,13 +896,13 @@ int ping_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, sin6->sin6_port = 0; sin6->sin6_addr = ip6->saddr; + sin6->sin6_flowinfo = 0; if (np->sndflow) sin6->sin6_flowinfo = *(__be32 *)ip6 & IPV6_FLOWINFO_MASK; - if (__ipv6_addr_needs_scope_id( - ipv6_addr_type(&sin6->sin6_addr))) - sin6->sin6_scope_id = IP6CB(skb)->iif; + sin6->sin6_scope_id = ipv6_iface_scope_id(&sin6->sin6_addr, + IP6CB(skb)->iif); if (inet6_sk(sk)->rxopt.all) pingv6_ops.datagram_recv_ctl(sk, msg, skb); |