diff --git a/debian/changelog b/debian/changelog index 2a8a6ea8f..9b26849fa 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,6 +12,10 @@ linux (4.19.13-2) UNRELEASED; urgency=medium [ Yves-Alexis Perez ] * smb3: fix large reads on encrypted connections + [ Salvatore Bonaccorso ] + * ipv6: Consider sk_bound_dev_if when binding a socket to an address + (Closes: #918103) + -- John Paul Adrian Glaubitz Sun, 30 Dec 2018 10:30:57 +0100 linux (4.19.13-1) unstable; urgency=medium diff --git a/debian/patches/bugfix/all/ipv6-Consider-sk_bound_dev_if-when-binding-a-socket-.patch b/debian/patches/bugfix/all/ipv6-Consider-sk_bound_dev_if-when-binding-a-socket-.patch new file mode 100644 index 000000000..0afc1f915 --- /dev/null +++ b/debian/patches/bugfix/all/ipv6-Consider-sk_bound_dev_if-when-binding-a-socket-.patch @@ -0,0 +1,38 @@ +From: David Ahern +Date: Wed, 2 Jan 2019 18:57:09 -0800 +Subject: ipv6: Consider sk_bound_dev_if when binding a socket to an address +Origin: https://git.kernel.org/linus/c5ee066333ebc322a24a00a743ed941a0c68617e +Bug-Debian: https://bugs.debian.org/918103 + +IPv6 does not consider if the socket is bound to a device when binding +to an address. The result is that a socket can be bound to eth0 and then +bound to the address of eth1. If the device is a VRF, the result is that +a socket can only be bound to an address in the default VRF. + +Resolve by considering the device if sk_bound_dev_if is set. + +This problem exists from the beginning of git history. + +Signed-off-by: David Ahern +Signed-off-by: David S. Miller +--- + net/ipv6/af_inet6.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c +index f0cd291034f0..0bfb6cc0a30a 100644 +--- a/net/ipv6/af_inet6.c ++++ b/net/ipv6/af_inet6.c +@@ -350,6 +350,9 @@ static int __inet6_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len, + err = -EINVAL; + goto out_unlock; + } ++ } ++ ++ if (sk->sk_bound_dev_if) { + dev = dev_get_by_index_rcu(net, sk->sk_bound_dev_if); + if (!dev) { + err = -ENODEV; +-- +2.20.1 + diff --git a/debian/patches/series b/debian/patches/series index 90eace6b5..b85775927 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -101,6 +101,7 @@ bugfix/all/partially-revert-usb-kconfig-using-select-for-usb_co.patch bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch debian/revert-objtool-fix-config_stack_validation-y-warning.patch bugfix/all/smb3-fix-large-reads-on-encrypted-connections.patch +bugfix/all/ipv6-Consider-sk_bound_dev_if-when-binding-a-socket-.patch # Miscellaneous features