commit 42882ab828739a75b3a74dbd01ba771aba5c1bab
Author: Jan RÄ™korajski <[email protected]>
Date:   Tue Dec 27 19:54:56 2016 +0100

    - 3.18.46

 kernel-small_fixes.patch | 92 ------------------------------------------------
 kernel.spec              |  6 ++--
 2 files changed, 3 insertions(+), 95 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index 3bb4d17..ba4223a 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -70,9 +70,9 @@
 %define                have_pcmcia     0
 %endif
 
-%define                rel             2
+%define                rel             1
 %define                basever         3.18
-%define                postver         .45
+%define                postver         .46
 
 # define this to '-%{basever}' for longterm branch
 %define                versuffix       -%{basever}
@@ -121,7 +121,7 @@ Source0:    
http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz
 # Source0-md5: 9e854df51ca3fef8bfe566dbd7b89241
 %if "%{postver}" != ".0"
 Patch0:                
http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.xz
-# Patch0-md5:  46375e6ec7ed50e9497390c1f6bb92b3
+# Patch0-md5:  2aa3c129737693414ee22471dabf1086
 %endif
 Source1:       kernel.sysconfig
 
diff --git a/kernel-small_fixes.patch b/kernel-small_fixes.patch
index 3d121d1..12c7335 100644
--- a/kernel-small_fixes.patch
+++ b/kernel-small_fixes.patch
@@ -62,95 +62,3 @@
  {
        int err;
  
-From 84ac7260236a49c79eede91617700174c2c19b0c Mon Sep 17 00:00:00 2001
-From: Philip Pettersson <[email protected]>
-Date: Wed, 30 Nov 2016 14:55:36 -0800
-Subject: packet: fix race condition in packet_set_ring
-
-When packet_set_ring creates a ring buffer it will initialize a
-struct timer_list if the packet version is TPACKET_V3. This value
-can then be raced by a different thread calling setsockopt to
-set the version to TPACKET_V1 before packet_set_ring has finished.
-
-This leads to a use-after-free on a function pointer in the
-struct timer_list when the socket is closed as the previously
-initialized timer will not be deleted.
-
-The bug is fixed by taking lock_sock(sk) in packet_setsockopt when
-changing the packet version while also taking the lock at the start
-of packet_set_ring.
-
-Fixes: f6fb8f100b80 ("af-packet: TPACKET_V3 flexible buffer implementation.")
-Signed-off-by: Philip Pettersson <[email protected]>
-Signed-off-by: Eric Dumazet <[email protected]>
-Signed-off-by: David S. Miller <[email protected]>
----
- net/packet/af_packet.c | 18 ++++++++++++------
- 1 file changed, 12 insertions(+), 6 deletions(-)
-
-diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
-index d2238b2..dd23323 100644
---- a/net/packet/af_packet.c
-+++ b/net/packet/af_packet.c
-@@ -3648,19 +3648,25 @@ 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;
-               switch (val) {
-               case TPACKET_V1:
-               case TPACKET_V2:
-               case TPACKET_V3:
--                      po->tp_version = val;
--                      return 0;
-+                      break;
-               default:
-                       return -EINVAL;
-               }
-+              lock_sock(sk);
-+              if (po->rx_ring.pg_vec || po->tx_ring.pg_vec) {
-+                      ret = -EBUSY;
-+              } else {
-+                      po->tp_version = val;
-+                      ret = 0;
-+              }
-+              release_sock(sk);
-+              return ret;
-       }
-       case PACKET_RESERVE:
-       {
-@@ -4164,6 +4170,7 @@ static int packet_set_ring(struct sock *sk, union 
tpacket_req_u *req_u,
-       /* Added to avoid minimal code churn */
-       struct tpacket_req *req = &req_u->req;
- 
-+      lock_sock(sk);
-       /* Opening a Tx-ring is NOT supported in TPACKET_V3 */
-       if (!closing && tx_ring && (po->tp_version > TPACKET_V2)) {
-               net_warn_ratelimited("Tx-ring is not supported.\n");
-@@ -4245,7 +4252,6 @@ static int packet_set_ring(struct sock *sk, union 
tpacket_req_u *req_u,
-                       goto out;
-       }
- 
--      lock_sock(sk);
- 
-       /* Detach socket from network */
-       spin_lock(&po->bind_lock);
-@@ -4294,11 +4300,11 @@ static int packet_set_ring(struct sock *sk, union 
tpacket_req_u *req_u,
-               if (!tx_ring)
-                       prb_shutdown_retire_blk_timer(po, rb_queue);
-       }
--      release_sock(sk);
- 
-       if (pg_vec)
-               free_pg_vec(pg_vec, order, req->tp_block_nr);
- out:
-+      release_sock(sk);
-       return err;
- }
- 
--- 
-cgit v0.12
-
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/42882ab828739a75b3a74dbd01ba771aba5c1bab

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to