]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Apr 2017 13:09:32 +0000 (15:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Apr 2017 13:09:32 +0000 (15:09 +0200)
added patches:
net-ipv6-check-route-protocol-when-deleting-routes.patch

queue-4.9/net-ipv6-check-route-protocol-when-deleting-routes.patch [new file with mode: 0644]
queue-4.9/series

diff --git a/queue-4.9/net-ipv6-check-route-protocol-when-deleting-routes.patch b/queue-4.9/net-ipv6-check-route-protocol-when-deleting-routes.patch
new file mode 100644 (file)
index 0000000..893e5b4
--- /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
+@@ -2166,6 +2166,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 56cd50699c0eec5adff52021c6b3b436a9487339..d320749ace4f6d66f331a77872c6a8ff0113c126 100644 (file)
@@ -65,3 +65,4 @@ dvb-usb-don-t-use-stack-for-firmware-load.patch
 dvb-usb-firmware-don-t-do-dma-on-stack.patch
 cxusb-use-a-dma-capable-buffer-also-for-reading.patch
 virtio-console-avoid-dma-from-stack.patch
+net-ipv6-check-route-protocol-when-deleting-routes.patch