]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commitdiff
Revert "net-packet: fix race in packet_set_ring on PACKET_RESERVE"
authorKleber Sacilotto de Souza <kleber.souza@canonical.com>
Fri, 11 Aug 2017 12:02:39 +0000 (14:02 +0200)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Fri, 11 Aug 2017 15:23:43 +0000 (17:23 +0200)
This reverts commit ccf7bb7399fef0475ebcbd3a9b77e5f9878e559f.

CVE-2017-1000111

Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
net/packet/af_packet.c

index d50867eb87cd498f56e954b8d6b8e0e98d1774bb..f8d6a0ca9c03375f3ade59f7fabc5e281263bb3f 100644 (file)
@@ -3622,19 +3622,14 @@ packet_setsockopt(struct socket *sock, int level, int optname, char __user *optv
 
                if (optlen != sizeof(val))
                        return -EINVAL;
+               if (po->rx_ring.pg_vec || po->tx_ring.pg_vec)
+                       return -EBUSY;
                if (copy_from_user(&val, optval, sizeof(val)))
                        return -EFAULT;
                if (val > INT_MAX)
                        return -EINVAL;
-               lock_sock(sk);
-               if (po->rx_ring.pg_vec || po->tx_ring.pg_vec)
-                       ret = -EBUSY;
-               else {
-                       po->tp_reserve = val;
-                       ret = 0;
-               }
-               release_sock(sk);
-               return ret;
+               po->tp_reserve = val;
+               return 0;
        }
        case PACKET_LOSS:
        {