mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-30 02:21:15 +00:00
igmp: fix ip_mc_sf_allow race [v5]
Almost all igmp functions accessing inet->mc_list are protected by rtnl_lock(), but there is one exception which is ip_mc_sf_allow(), so there is a chance of either ip_mc_drop_socket or ip_mc_leave_group remove an entry while ip_mc_sf_allow is running causing a crash. Signed-off-by: Flavio Leitner <fleitner@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8b64056dac
commit
c85bb41e93
2 changed files with 64 additions and 21 deletions
|
@ -153,6 +153,7 @@ extern int sysctl_igmp_max_msf;
|
|||
struct ip_sf_socklist {
|
||||
unsigned int sl_max;
|
||||
unsigned int sl_count;
|
||||
struct rcu_head rcu;
|
||||
__be32 sl_addr[0];
|
||||
};
|
||||
|
||||
|
@ -170,6 +171,7 @@ struct ip_mc_socklist {
|
|||
struct ip_mreqn multi;
|
||||
unsigned int sfmode; /* MCAST_{INCLUDE,EXCLUDE} */
|
||||
struct ip_sf_socklist *sflist;
|
||||
struct rcu_head rcu;
|
||||
};
|
||||
|
||||
struct ip_sf_list {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue