Eric Dumazet
405d3bbab4
ipv4/igmp: fix another memory leak in igmpv3_del_delrec()
...
[ Upstream commit 3580d04aa674383c42de7b635d28e52a1e5bc72c ]
syzbot reported memory leaks [1] that I have back tracked to
a missing cleanup from igmpv3_del_delrec() when
(im->sfmode != MCAST_INCLUDE)
Add ip_sf_list_clear_all() and kfree_pmc() helpers to explicitely
handle the cleanups before freeing.
[1]
BUG: memory leak
unreferenced object 0xffff888123e32b00 (size 64):
comm "softirq", pid 0, jiffies 4294942968 (age 8.010s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 e0 00 00 01 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<000000006105011b>] kmemleak_alloc_recursive include/linux/kmemleak.h:55 [inline]
[<000000006105011b>] slab_post_alloc_hook mm/slab.h:439 [inline]
[<000000006105011b>] slab_alloc mm/slab.c:3326 [inline]
[<000000006105011b>] kmem_cache_alloc_trace+0x13d/0x280 mm/slab.c:3553
[<000000004bba8073>] kmalloc include/linux/slab.h:547 [inline]
[<000000004bba8073>] kzalloc include/linux/slab.h:742 [inline]
[<000000004bba8073>] ip_mc_add1_src net/ipv4/igmp.c:1961 [inline]
[<000000004bba8073>] ip_mc_add_src+0x36b/0x400 net/ipv4/igmp.c:2085
[<00000000a46a65a0>] ip_mc_msfilter+0x22d/0x310 net/ipv4/igmp.c:2475
[<000000005956ca89>] do_ip_setsockopt.isra.0+0x1795/0x1930 net/ipv4/ip_sockglue.c:957
[<00000000848e2d2f>] ip_setsockopt+0x3b/0xb0 net/ipv4/ip_sockglue.c:1246
[<00000000b9db185c>] udp_setsockopt+0x4e/0x90 net/ipv4/udp.c:2616
[<000000003028e438>] sock_common_setsockopt+0x38/0x50 net/core/sock.c:3130
[<0000000015b65589>] __sys_setsockopt+0x98/0x120 net/socket.c:2078
[<00000000ac198ef0>] __do_sys_setsockopt net/socket.c:2089 [inline]
[<00000000ac198ef0>] __se_sys_setsockopt net/socket.c:2086 [inline]
[<00000000ac198ef0>] __x64_sys_setsockopt+0x26/0x30 net/socket.c:2086
[<000000000a770437>] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:301
[<00000000d3adb93b>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
Fixes: 9c8bb163ae78 ("igmp, mld: Fix memory leak in igmpv3/mld_del_delrec()")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Hangbin Liu <liuhangbin@gmail.com>
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-06-11 12:22:34 +02:00
..
2018-10-03 17:01:42 -07:00
2019-04-20 09:07:51 +02:00
2019-05-16 19:43:46 +02:00
2019-04-20 09:07:53 +02:00
2019-04-27 09:34:40 +02:00
2019-02-23 09:05:59 +01:00
2019-05-08 07:19:09 +02:00
2019-05-10 17:52:10 +02:00
2019-05-16 19:43:45 +02:00
2019-05-08 07:19:07 +02:00
2019-01-31 08:12:36 +01:00
2019-03-27 14:13:02 +09:00
2019-06-11 12:22:34 +02:00
2018-09-19 22:47:15 +02:00
2019-04-03 06:24:14 +02:00
2018-02-25 11:05:44 +01:00
2018-07-22 14:27:39 +02:00
2019-02-12 19:45:00 +01:00
2017-02-18 15:11:43 +01:00
2019-03-19 13:14:08 +01:00
2019-05-02 09:32:06 +02:00
2019-06-11 12:22:34 +02:00
2019-06-11 12:22:33 +02:00
2017-05-25 15:44:41 +02:00
2018-09-15 09:43:01 +02:00
2018-03-31 18:11:34 +02:00
2019-04-17 08:36:44 +02:00
2018-06-16 09:52:32 +02:00
2019-03-19 13:14:08 +01:00
2016-09-10 23:12:53 -07:00
2019-06-11 12:22:33 +02:00
2019-05-31 06:48:15 -07:00
2018-09-09 20:01:19 +02:00
2018-03-11 16:21:34 +01:00
2016-10-20 11:23:08 -04:00
2019-05-16 19:43:42 +02:00
2019-03-13 14:04:53 -07:00
2018-08-09 12:17:59 +02:00
2019-02-06 17:33:27 +01:00
2019-03-13 14:04:53 -07:00
2019-05-02 09:32:06 +02:00
2019-05-16 19:43:46 +02:00
2019-03-23 13:19:44 +01:00
2018-08-24 13:12:36 +02:00
2019-05-02 09:32:05 +02:00
2018-05-16 10:08:43 +02:00
2019-04-03 06:24:14 +02:00
2019-03-19 13:14:10 +01:00
2019-03-13 14:04:53 -07:00
2019-04-17 08:36:45 +02:00
2018-04-29 11:32:02 +02:00
2019-05-02 09:32:01 +02:00
2016-10-19 10:58:04 -04:00
2019-05-25 18:26:44 +02:00
2019-03-19 13:14:10 +01:00
2019-05-25 18:26:44 +02:00
2019-05-31 06:48:15 -07:00
2019-03-19 13:14:09 +01:00
2019-05-25 18:26:54 +02:00
2019-01-09 16:16:41 +01:00
2016-08-17 19:36:23 -04:00
2016-08-17 19:36:23 -04:00
2018-11-10 07:42:58 -08:00
2016-10-06 09:52:23 -07:00