pavlix pushed to radvd (master). "Resolves: #1188891 - radvdump: show routes with prefixlen > 64"

notifications at fedoraproject.org notifications at fedoraproject.org
Sun Apr 12 20:40:48 UTC 2015


>From 0d197500d1e87b175e2805d79a2f2375c0075ace Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pavel=20=C5=A0imerda?= <psimerda at redhat.com>
Date: Sun, 12 Apr 2015 22:36:54 +0200
Subject: Resolves: #1188891 - radvdump: show routes with prefixlen > 64


diff --git a/radvd-2.11-route-info.patch b/radvd-2.11-route-info.patch
new file mode 100644
index 0000000..3da39c7
--- /dev/null
+++ b/radvd-2.11-route-info.patch
@@ -0,0 +1,58 @@
+From 11b4e773af7d2463751190edb240ec26c1a70bbf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Pavel=20=C5=A0imerda?= <psimerda at redhat.com>
+Date: Sun, 12 Apr 2015 21:45:53 +0200
+Subject: [PATCH] radvdump: show routes with prefixlen > 64
+
+Current radvdump code blindly copies over eight bytes of route prefix
+but its size in bytes can actually be zero, eight or sixteen.
+
+Use the following `/etc/radvd.conf` to reproduce:
+
+    interface eth0 {
+        AdvSendAdvert on;
+        MinRtrAdvInterval 3;
+        MaxRtrAdvInterval 4;
+        route 2001:db8:0:0:11::/80 {};
+    };
+
+Output before the change:
+
+    route 2001:db8::/80
+    {
+        AdvRoutePreference medium;
+        AdvRouteLifetime 12;
+    }; # End of route definition
+
+Output after the change:
+
+    route 2001:db8:0:0:11::/80
+    {
+        AdvRoutePreference medium;
+        AdvRouteLifetime 12;
+    }; # End of route definition
+
+See also:
+
+ * https://bugzilla.redhat.com/show_bug.cgi?id=1188891
+ * https://tools.ietf.org/html/rfc4191#section-2.3
+---
+ radvdump.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/radvdump.c b/radvdump.c
+index 9789c85..7d55146 100644
+--- a/radvdump.c
++++ b/radvdump.c
+@@ -352,7 +352,8 @@ static void print_ff(unsigned char *msg, int len, struct sockaddr_in6 *addr, int
+ 				} else {
+ 					struct in6_addr addr;
+ 					memset(&addr, 0, sizeof(addr));
+-					memcpy(&addr, &rinfo->nd_opt_ri_prefix, 8);
++					if (rinfo->nd_opt_ri_len > 1)
++						memcpy(&addr, &rinfo->nd_opt_ri_prefix, (rinfo->nd_opt_ri_len - 1) * 8);
+ 					addrtostr(&addr, prefix_str, sizeof(prefix_str));
+ 					printf("\n\troute %s/%d\n\t{\n", prefix_str, rinfo->nd_opt_ri_prefix_len);
+ 				}
+-- 
+2.0.5
+
diff --git a/radvd.spec b/radvd.spec
index df8350b..deb0ead 100644
--- a/radvd.spec
+++ b/radvd.spec
@@ -1,7 +1,7 @@
 Summary: A Router Advertisement daemon
 Name: radvd
 Version: 2.11
-Release: 1%{?dist}
+Release: 2%{?dist}
 # The code includes the advertising clause, so it's GPL-incompatible
 License: BSD with advertising
 Group: System Environment/Daemons
@@ -9,6 +9,13 @@ URL: http://www.litech.org/radvd/
 Source0: %{url}dist/%{name}-%{version}.tar.xz
 Source1: radvd-tmpfs.conf
 Source2: radvd.service
+# radvdump: show routes with prefixlen > 64
+#
+# https://bugzilla.redhat.com/show_bug.cgi?id=1188891
+# https://github.com/reubenhwk/radvd/pull/42
+#
+# Submitted upstream.
+Patch0: radvd-2.11-route-info.patch
 BuildRequires: bison
 BuildRequires: flex
 BuildRequires: flex-static
@@ -33,6 +40,7 @@ services.
 
 %prep
 %setup -q
+%patch0 -p1
 for F in CHANGES; do
     iconv -f iso-8859-1 -t utf-8 < "$F" > "${F}.new"
     touch -r "$F" "${F}.new"
@@ -94,6 +102,9 @@ exit 0
 %{_sbindir}/radvdump
 
 %changelog
+* Sun Apr 12 2015 Pavel Šimerda <psimerda at redhat.com> - 2.11-2
+- Resolves: #1188891 - radvdump: show routes with prefixlen > 64
+
 * Sat Apr 11 2015 Pavel Šimerda <psimerda at redhat.com> - 2.11-1
 - new version 2.11
 
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/radvd.git/commit/?h=master&id=0d197500d1e87b175e2805d79a2f2375c0075ace


More information about the scm-commits mailing list