]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
more 3.18 patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Apr 2017 13:05:47 +0000 (15:05 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Apr 2017 13:05:47 +0000 (15:05 +0200)
queue-3.18/net-ipv6-check-route-protocol-when-deleting-routes.patch [new file with mode: 0644]
queue-3.18/series

diff --git a/queue-3.18/net-ipv6-check-route-protocol-when-deleting-routes.patch b/queue-3.18/net-ipv6-check-route-protocol-when-deleting-routes.patch
new file mode 100644 (file)
index 0000000..83e2366
--- /dev/null
@@ -0,0 +1,38 @@
+From c2ed1880fd61a998e3ce40254a99a2ad000f1a7d Mon Sep 17 00:00:00 2001
+From: Mantas M <grawity@gmail.com>
+Date: Fri, 16 Dec 2016 10:30:59 +0200
+Subject: net: ipv6: check route protocol when deleting routes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Mantas M <grawity@gmail.com>
+
+commit c2ed1880fd61a998e3ce40254a99a2ad000f1a7d upstream.
+
+The protocol field is checked when deleting IPv4 routes, but ignored for
+IPv6, which causes problems with routing daemons accidentally deleting
+externally set routes (observed by multiple bird6 users).
+
+This can be verified using `ip -6 route del <prefix> proto something`.
+
+Signed-off-by: Mantas Mikulėnas <grawity@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/ipv6/route.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/net/ipv6/route.c
++++ b/net/ipv6/route.c
+@@ -1731,6 +1731,8 @@ static int ip6_route_del(struct fib6_con
+                               continue;
+                       if (cfg->fc_metric && cfg->fc_metric != rt->rt6i_metric)
+                               continue;
++                      if (cfg->fc_protocol && cfg->fc_protocol != rt->rt6i_protocol)
++                              continue;
+                       dst_hold(&rt->dst);
+                       read_unlock_bh(&table->tb6_lock);
index 00f9bb71183709ef6ca4967233a2c15bada9e0bd..d1703d83b0e62e3412f6ecb6c8a79a2748e30255 100644 (file)
@@ -61,3 +61,4 @@ pegasus-use-heap-buffers-for-all-register-access.patch
 rtl8150-use-heap-buffers-for-all-register-access.patch
 catc-combine-failure-cleanup-code-in-catc_probe.patch
 catc-use-heap-buffer-for-memory-size-test.patch
+net-ipv6-check-route-protocol-when-deleting-routes.patch