diff options
Diffstat (limited to 'net/ipv4/igmp.c')
-rw-r--r-- | net/ipv4/igmp.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c index 9f4b752f5a33..e981369ebe13 100644 --- a/net/ipv4/igmp.c +++ b/net/ipv4/igmp.c | |||
@@ -2199,13 +2199,13 @@ void ip_mc_drop_socket(struct sock *sk) | |||
2199 | struct in_device *in_dev; | 2199 | struct in_device *in_dev; |
2200 | inet->mc_list = iml->next; | 2200 | inet->mc_list = iml->next; |
2201 | 2201 | ||
2202 | if ((in_dev = inetdev_by_index(iml->multi.imr_ifindex)) != NULL) { | 2202 | in_dev = inetdev_by_index(iml->multi.imr_ifindex); |
2203 | (void) ip_mc_leave_src(sk, iml, in_dev); | 2203 | (void) ip_mc_leave_src(sk, iml, in_dev); |
2204 | if (in_dev != NULL) { | ||
2204 | ip_mc_dec_group(in_dev, iml->multi.imr_multiaddr.s_addr); | 2205 | ip_mc_dec_group(in_dev, iml->multi.imr_multiaddr.s_addr); |
2205 | in_dev_put(in_dev); | 2206 | in_dev_put(in_dev); |
2206 | } | 2207 | } |
2207 | sock_kfree_s(sk, iml, sizeof(*iml)); | 2208 | sock_kfree_s(sk, iml, sizeof(*iml)); |
2208 | |||
2209 | } | 2209 | } |
2210 | rtnl_unlock(); | 2210 | rtnl_unlock(); |
2211 | } | 2211 | } |