From: Greg Kroah-Hartman Date: Thu, 29 Jun 2017 12:46:15 +0000 (+0200) Subject: 4.4-stable patches X-Git-Tag: v3.18.60~63 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ce461a42ee446e19e92a063ca116aa825ebaf2a0;p=thirdparty%2Fkernel%2Fstable-queue.git 4.4-stable patches added patches: ipv6-release-dst-on-error-in-ip6_dst_lookup_tail.patch --- diff --git a/queue-4.4/ipv6-release-dst-on-error-in-ip6_dst_lookup_tail.patch b/queue-4.4/ipv6-release-dst-on-error-in-ip6_dst_lookup_tail.patch new file mode 100644 index 00000000000..e5f009c3d78 --- /dev/null +++ b/queue-4.4/ipv6-release-dst-on-error-in-ip6_dst_lookup_tail.patch @@ -0,0 +1,38 @@ +From 00ea1ceebe0d9f2dc1cc2b7bd575a00100c27869 Mon Sep 17 00:00:00 2001 +From: Willem de Bruijn +Date: Sat, 18 Feb 2017 19:00:45 -0500 +Subject: ipv6: release dst on error in ip6_dst_lookup_tail + +From: Willem de Bruijn + +commit 00ea1ceebe0d9f2dc1cc2b7bd575a00100c27869 upstream. + +If ip6_dst_lookup_tail has acquired a dst and fails the IPv4-mapped +check, release the dst before returning an error. + +Fixes: ec5e3b0a1d41 ("ipv6: Inhibit IPv4-mapped src address on the wire.") +Signed-off-by: Willem de Bruijn +Acked-by: Eric Dumazet +Signed-off-by: David S. Miller +Cc: Ben Hutchings +Signed-off-by: Greg Kroah-Hartman + +--- + net/ipv6/ip6_output.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/net/ipv6/ip6_output.c ++++ b/net/ipv6/ip6_output.c +@@ -1005,8 +1005,10 @@ static int ip6_dst_lookup_tail(struct ne + } + #endif + if (ipv6_addr_v4mapped(&fl6->saddr) && +- !(ipv6_addr_v4mapped(&fl6->daddr) || ipv6_addr_any(&fl6->daddr))) +- return -EAFNOSUPPORT; ++ !(ipv6_addr_v4mapped(&fl6->daddr) || ipv6_addr_any(&fl6->daddr))) { ++ err = -EAFNOSUPPORT; ++ goto out_err_release; ++ } + + return 0; +