Eric Dumazet
df9c0f8a15
mld: fix memory leak in mld_del_delrec()
...
[ Upstream commit a84d016479896b5526a2cc54784e6ffc41c9d6f6 ]
Similar to the fix done for IPv4 in commit e5b1c6c6277d
("igmp: fix memory leak in igmpv3_del_delrec()"), we need to
make sure mca_tomb and mca_sources are not blindly overwritten.
Using swap() then a call to ip6_mc_clear_src() will take care
of the missing free.
BUG: memory leak
unreferenced object 0xffff888117d9db00 (size 64):
comm "syz-executor247", pid 6918, jiffies 4294943989 (age 25.350s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 fe 88 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<000000005b463030>] kmemleak_alloc_recursive include/linux/kmemleak.h:43 [inline]
[<000000005b463030>] slab_post_alloc_hook mm/slab.h:522 [inline]
[<000000005b463030>] slab_alloc mm/slab.c:3319 [inline]
[<000000005b463030>] kmem_cache_alloc_trace+0x145/0x2c0 mm/slab.c:3548
[<00000000939cbf94>] kmalloc include/linux/slab.h:552 [inline]
[<00000000939cbf94>] kzalloc include/linux/slab.h:748 [inline]
[<00000000939cbf94>] ip6_mc_add1_src net/ipv6/mcast.c:2236 [inline]
[<00000000939cbf94>] ip6_mc_add_src+0x31f/0x420 net/ipv6/mcast.c:2356
[<00000000d8972221>] ip6_mc_source+0x4a8/0x600 net/ipv6/mcast.c:449
[<000000002b203d0d>] do_ipv6_setsockopt.isra.0+0x1b92/0x1dd0 net/ipv6/ipv6_sockglue.c:748
[<000000001f1e2d54>] ipv6_setsockopt+0x89/0xd0 net/ipv6/ipv6_sockglue.c:944
[<00000000c8f7bdf9>] udpv6_setsockopt+0x4e/0x90 net/ipv6/udp.c:1558
[<000000005a9a0c5e>] sock_common_setsockopt+0x38/0x50 net/core/sock.c:3139
[<00000000910b37b2>] __sys_setsockopt+0x10f/0x220 net/socket.c:2084
[<00000000e9108023>] __do_sys_setsockopt net/socket.c:2100 [inline]
[<00000000e9108023>] __se_sys_setsockopt net/socket.c:2097 [inline]
[<00000000e9108023>] __x64_sys_setsockopt+0x26/0x30 net/socket.c:2097
[<00000000f4818160>] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:296
[<000000008d367e8f>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
Fixes: 1666d49e1d41 ("mld: do not remove mld souce list info when set link down")
Fixes: 9c8bb163ae78 ("igmp, mld: Fix memory leak in igmpv3/mld_del_delrec()")
Signed-off-by: Eric Dumazet <edumazet@google.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-09-10 10:32:21 +01:00
..
2018-10-03 17:00:47 -07:00
2019-07-31 07:28:39 +02:00
2017-11-02 11:10:55 +01:00
2019-05-16 19:42:34 +02:00
2019-04-20 09:15:07 +02:00
2019-04-27 09:35:33 +02:00
2019-06-22 08:16:14 +02:00
2019-07-31 07:28:19 +02:00
2019-07-31 07:28:43 +02:00
2019-08-29 08:26:37 +02:00
2019-05-08 07:20:45 +02:00
2019-07-21 09:04:22 +02:00
2019-08-29 08:26:42 +02:00
2019-09-10 10:32:20 +01:00
2018-09-19 22:43:43 +02:00
2019-04-03 06:25:08 +02:00
2018-02-25 11:07:52 +01:00
2018-07-22 14:28:49 +02:00
2019-05-16 19:42:34 +02:00
2019-03-19 13:13:22 +01:00
2019-04-27 09:35:40 +02:00
2018-04-29 11:33:13 +02:00
2019-09-10 10:32:21 +01:00
2019-09-10 10:32:21 +01:00
2017-11-02 11:10:55 +01:00
2018-03-31 18:10:41 +02:00
2019-04-17 08:37:45 +02:00
2019-07-31 07:28:21 +02:00
2019-08-09 17:53:35 +02:00
2019-06-22 08:16:14 +02:00
2019-06-09 09:18:10 +02:00
2019-09-06 10:20:59 +02:00
2018-09-09 19:55:52 +02:00
2019-03-13 14:03:09 -07:00
2017-10-21 01:56:38 +01:00
2019-08-29 08:26:39 +02:00
2019-03-13 14:03:08 -07:00
2019-04-03 06:25:08 +02:00
2019-07-31 07:28:46 +02:00
2019-07-31 07:28:45 +02:00
2018-07-22 14:28:49 +02:00
2019-07-31 07:28:45 +02:00
2019-08-25 10:50:26 +02:00
2019-03-23 14:35:16 +01:00
2019-09-10 10:32:21 +01:00
2018-08-24 13:09:13 +02:00
2019-06-11 12:21:45 +02:00
2018-05-16 10:10:26 +02:00
2019-05-02 09:40:34 +02:00
2019-07-31 07:28:45 +02:00
2019-09-10 10:32:21 +01:00
2019-08-25 10:50:27 +02:00
2019-09-06 10:20:50 +02:00
2018-07-22 14:28:47 +02:00
2019-07-21 09:04:29 +02:00
2017-08-07 14:48:48 -07:00
2019-08-09 17:53:35 +02:00
2018-12-05 19:41:11 +01:00
2019-03-19 13:13:24 +01:00
2019-08-04 09:32:02 +02:00
2017-11-02 11:10:55 +01:00
2019-09-06 10:20:59 +02:00
2019-03-19 13:13:23 +01:00
2019-08-25 10:50:29 +02:00
2019-01-09 17:14:46 +01:00
2017-09-04 13:25:20 +02:00
2017-11-02 11:10:55 +01:00
2019-08-25 10:50:02 +02:00