udp: must lock the socket in udp_disconnect()
[cascardo/linux.git] / net / ipv4 / raw.c
index 438f50c..ecbe5a7 100644 (file)
@@ -606,12 +606,6 @@ static int raw_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
                            (inet->hdrincl ? FLOWI_FLAG_KNOWN_NH : 0),
                           daddr, saddr, 0, 0);
 
-       if (!saddr && ipc.oif) {
-               err = l3mdev_get_saddr(net, ipc.oif, &fl4);
-               if (err < 0)
-                       goto done;
-       }
-
        if (!inet->hdrincl) {
                rfv.msg = msg;
                rfv.hlen = 0;
@@ -924,7 +918,7 @@ struct proto raw_prot = {
        .close             = raw_close,
        .destroy           = raw_destroy,
        .connect           = ip4_datagram_connect,
-       .disconnect        = udp_disconnect,
+       .disconnect        = __udp_disconnect,
        .ioctl             = raw_ioctl,
        .init              = raw_init,
        .setsockopt        = raw_setsockopt,