]> git.baikalelectronics.ru Git - kernel.git/commit
broken ping to ipv6 linklocal addresses on debian buster
authorCasey Schaufler <casey@schaufler-ca.com>
Mon, 3 Feb 2020 17:15:00 +0000 (09:15 -0800)
committerCasey Schaufler <casey@schaufler-ca.com>
Wed, 5 Feb 2020 22:16:27 +0000 (14:16 -0800)
commitceadc7fb6cc6651c2c974901edd4a2be8d06089e
tree5d3f406243737483afeed91d15fb7740ec99197d
parent5e70d806333e1f2313878ff55337b4e1f608e3fc
broken ping to ipv6 linklocal addresses on debian buster

I am seeing ping failures to IPv6 linklocal addresses with Debian
buster. Easiest example to reproduce is:

$ ping -c1 -w1 ff02::1%eth1
connect: Invalid argument

$ ping -c1 -w1 ff02::1%eth1
PING ff02::01%eth1(ff02::1%eth1) 56 data bytes
64 bytes from fe80::e0:f9ff:fe0c:37%eth1: icmp_seq=1 ttl=64 time=0.059 ms

git bisect traced the failure to
commit bacba6730f0b ("smack: Check address length before reading address family")

Arguably ping is being stupid since the buster version is not setting
the address family properly (ping on stretch for example does):

$ strace -e connect ping6 -c1 -w1 ff02::1%eth1
connect(5, {sa_family=AF_UNSPEC,
sa_data="\4\1\0\0\0\0\377\2\0\0\0\0\0\0\0\0\0\0\0\0\0\1\3\0\0\0"}, 28)
= -1 EINVAL (Invalid argument)

but the command works fine on kernels prior to this commit, so this is
breakage which goes against the Linux paradigm of "don't break userspace"

Cc: stable@vger.kernel.org
Reported-by: David Ahern <dsahern@gmail.com>
Suggested-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
 security/smack/smack_lsm.c | 41 +++++++++++++++++++----------------------
 1 file changed, 19 insertions(+), 22 deletions(-)
security/smack/smack_lsm.c