diff --git a/iproute2.changes b/iproute2.changes index 6b5475f..d18422c 100644 --- a/iproute2.changes +++ b/iproute2.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed May 2 06:13:55 UTC 2018 - mkubecek@suse.cz + +- utils-Do-not-reset-family-for-default-any-all-addres.patch: + fix parsing of "ip route add default via " command + (bsc#1091603) + ------------------------------------------------------------------- Tue Apr 10 05:54:13 UTC 2018 - mkubecek@suse.cz diff --git a/iproute2.spec b/iproute2.spec index b25b78a..cbcab91 100644 --- a/iproute2.spec +++ b/iproute2.spec @@ -37,6 +37,7 @@ Patch3: add-explicit-typecast-to-avoid-gcc-warning.patch Patch4: xfrm-support-displaying-transformations-used-for-Mob.patch Patch6: split-link-and-compile-steps-for-binaries.patch Patch7: examples-fix-bashisms-in-example-script.patch +Patch8: utils-Do-not-reset-family-for-default-any-all-addres.patch Patch102: Revert-emp-fix-warning-on-deprecated-bison-directive.patch BuildRequires: bison BuildRequires: db-devel @@ -84,7 +85,7 @@ bash command line completion support for iproute. %prep %setup -qn %name-%rversion -%patch -P 1 -P 2 -P 3 -P 4 -P 6 -P 7 -p1 +%patch -P 1 -P 2 -P 3 -P 4 -P 6 -P 7 -P 8 -p1 %if 0%{?sles_version} == 11 %patch -P 102 -p1 %endif diff --git a/utils-Do-not-reset-family-for-default-any-all-addres.patch b/utils-Do-not-reset-family-for-default-any-all-addres.patch new file mode 100644 index 0000000..6a0ca62 --- /dev/null +++ b/utils-Do-not-reset-family-for-default-any-all-addres.patch @@ -0,0 +1,50 @@ +From: David Ahern +Date: Fri, 13 Apr 2018 09:36:33 -0700 +Subject: utils: Do not reset family for default, any, all addresses +Patch-mainline: v4.17.0 +Git-commit: d42c7891d26e4d5616a55aac9fe10813767fcf9c +References: bsc#1091603 + +Thomas reported a change in behavior with respect to autodectecting +address families. Specifically, 'ip ro add default via fe80::1' +syntax was failing to treat fe80::1 as an IPv6 address as it did in +prior releases. The root causes appears to be a change in family when +the default keyword is parsed. + +'default', 'any' and 'all' are relevant outside of AF_INET. Leave the +family arg as is for these when setting addr. + +Fixes: 93fa12418dc6 ("utils: Always specify family and ->bytelen in get_prefix_1()") +Reported-by: Thomas Deutschmann +Signed-off-by: David Ahern +Cc: Serhey Popovych + +--- + lib/utils.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/utils.c b/lib/utils.c +index b9e9a6caaf54..803bcc45f2f2 100644 +--- a/lib/utils.c ++++ b/lib/utils.c +@@ -566,7 +566,7 @@ static int __get_addr_1(inet_prefix *addr, const char *name, int family) + if (strcmp(name, "default") == 0) { + if ((family == AF_DECnet) || (family == AF_MPLS)) + return -1; +- addr->family = (family != AF_UNSPEC) ? family : AF_INET; ++ addr->family = family; + addr->bytelen = af_byte_len(addr->family); + addr->bitlen = -2; + addr->flags |= PREFIXLEN_SPECIFIED; +@@ -577,7 +577,7 @@ static int __get_addr_1(inet_prefix *addr, const char *name, int family) + strcmp(name, "any") == 0) { + if ((family == AF_DECnet) || (family == AF_MPLS)) + return -1; +- addr->family = AF_UNSPEC; ++ addr->family = family; + addr->bytelen = 0; + addr->bitlen = -2; + return 0; +-- +2.16.3 +