net: ipv6: add missing lock in ping_v6_sendmsg
authorLorenzo Colitti <lorenzo@google.com>
Wed, 3 Jul 2013 15:52:49 +0000 (00:52 +0900)
committerLorenzo Colitti <lorenzo@google.com>
Thu, 30 Jan 2014 19:39:33 +0000 (11:39 -0800)
[net-next commit a1bdc45580fc19e968b32ad27cd7e476a4aa58f6]

Bug: 12800827
Change-Id: I93d897e5043dc89bc99f111c89ef4f8b1fa1885d
Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ping.c

index 1f4886857b444f7927a2fca9ec6f42ccec08a1fc..858788da5a2fd0bc2cdf6ee8bd3abaf03b995239 100644 (file)
@@ -197,6 +197,7 @@ int ping_v6_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
        if (hlimit < 0)
                hlimit = ip6_dst_hoplimit(dst);
 
+       lock_sock(sk);
        err = ip6_append_data(sk, ping_getfrag, &pfh, len,
                              0, hlimit,
                              np->tclass, NULL, &fl6, rt,
@@ -211,6 +212,7 @@ int ping_v6_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
                                                 (struct icmp6hdr *) &pfh.icmph,
                                                 len);
        }
+       release_sock(sk);
 
        if (err)
                return err;