]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
ipv6: check sk sk_type and protocol early in ip_mroute_set/getsockopt
authorXin Long <lucien.xin@gmail.com>
Fri, 24 Feb 2017 08:29:06 +0000 (16:29 +0800)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 13 Aug 2019 11:38:38 +0000 (12:38 +0100)
commit2b8d63b97d78835d3cd75b0ee344d21489df4edc
tree587d2e2ebbaf514e407f90f999814dae8026add4
parent8eb43aebcde79ccadf76d80f20d8b3e60663e940
ipv6: check sk sk_type and protocol early in ip_mroute_set/getsockopt

commit 99253eb750fda6a644d5188fb26c43bad8d5a745 upstream.

Commit 5e1859fbcc3c ("ipv4: ipmr: various fixes and cleanups") fixed
the issue for ipv4 ipmr:

  ip_mroute_setsockopt() & ip_mroute_getsockopt() should not
  access/set raw_sk(sk)->ipmr_table before making sure the socket
  is a raw socket, and protocol is IGMP

The same fix should be done for ipv6 ipmr as well.

This patch can fix the panic caused by overwriting the same offset
as ipmr_table as in raw_sk(sk) when accessing other type's socket
by ip_mroute_setsockopt().

Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
net/ipv6/ip6mr.c