<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/net, branch v4.14.124</title>
<subtitle>Clone of https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git</subtitle>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/'/>
<entry>
<title>tipc: fix modprobe tipc failed after switch order of device registration</title>
<updated>2019-06-09T07:18:12+00:00</updated>
<author>
<name>Junwei Hu</name>
<email>hujunwei4@huawei.com</email>
</author>
<published>2019-05-20T06:43:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=d93fb604c0798538b86e10e2509ff5abb144b203'/>
<id>d93fb604c0798538b86e10e2509ff5abb144b203</id>
<content type='text'>
commit 526f5b851a96566803ee4bee60d0a34df56c77f8 upstream.

Error message printed:
modprobe: ERROR: could not insert 'tipc': Address family not
supported by protocol.
when modprobe tipc after the following patch: switch order of
device registration, commit 7e27e8d6130c
("tipc: switch order of device registration to fix a crash")

Because sock_create_kern(net, AF_TIPC, ...) called by
tipc_topsrv_create_listener() in the initialization process
of tipc_init_net(), so tipc_socket_init() must be execute before that.
Meanwhile, tipc_net_id need to be initialized when sock_create()
called, and tipc_socket_init() is no need to be called for each namespace.

I add a variable tipc_topsrv_net_ops, and split the
register_pernet_subsys() of tipc into two parts, and split
tipc_socket_init() with initialization of pernet params.

By the way, I fixed resources rollback error when tipc_bcast_init()
failed in tipc_init_net().

Fixes: 7e27e8d6130c ("tipc: switch order of device registration to fix a crash")
Signed-off-by: Junwei Hu &lt;hujunwei4@huawei.com&gt;
Reported-by: Wang Wang &lt;wangwang2@huawei.com&gt;
Reported-by: syzbot+1e8114b61079bfe9cbc5@syzkaller.appspotmail.com
Reviewed-by: Kang Zhou &lt;zhoukang7@huawei.com&gt;
Reviewed-by: Suanming Mou &lt;mousuanming@huawei.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 526f5b851a96566803ee4bee60d0a34df56c77f8 upstream.

Error message printed:
modprobe: ERROR: could not insert 'tipc': Address family not
supported by protocol.
when modprobe tipc after the following patch: switch order of
device registration, commit 7e27e8d6130c
("tipc: switch order of device registration to fix a crash")

Because sock_create_kern(net, AF_TIPC, ...) called by
tipc_topsrv_create_listener() in the initialization process
of tipc_init_net(), so tipc_socket_init() must be execute before that.
Meanwhile, tipc_net_id need to be initialized when sock_create()
called, and tipc_socket_init() is no need to be called for each namespace.

I add a variable tipc_topsrv_net_ops, and split the
register_pernet_subsys() of tipc into two parts, and split
tipc_socket_init() with initialization of pernet params.

By the way, I fixed resources rollback error when tipc_bcast_init()
failed in tipc_init_net().

Fixes: 7e27e8d6130c ("tipc: switch order of device registration to fix a crash")
Signed-off-by: Junwei Hu &lt;hujunwei4@huawei.com&gt;
Reported-by: Wang Wang &lt;wangwang2@huawei.com&gt;
Reported-by: syzbot+1e8114b61079bfe9cbc5@syzkaller.appspotmail.com
Reviewed-by: Kang Zhou &lt;zhoukang7@huawei.com&gt;
Reviewed-by: Suanming Mou &lt;mousuanming@huawei.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "tipc: fix modprobe tipc failed after switch order of device registration"</title>
<updated>2019-06-09T07:18:12+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2019-05-17T19:15:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=f61e651e39b3e5d06405514353862f060d452905'/>
<id>f61e651e39b3e5d06405514353862f060d452905</id>
<content type='text'>
commit 5593530e56943182ebb6d81eca8a3be6db6dbba4 upstream.

This reverts commit 532b0f7ece4cb2ffd24dc723ddf55242d1188e5e.

More revisions coming up.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 5593530e56943182ebb6d81eca8a3be6db6dbba4 upstream.

This reverts commit 532b0f7ece4cb2ffd24dc723ddf55242d1188e5e.

More revisions coming up.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>ipv4/igmp: fix build error if !CONFIG_IP_MULTICAST</title>
<updated>2019-06-09T07:18:11+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2019-05-23T01:35:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=47842fc63e3c670354301080f20d6c31a26e8049'/>
<id>47842fc63e3c670354301080f20d6c31a26e8049</id>
<content type='text'>
[ Upstream commit 903869bd10e6719b9df6718e785be7ec725df59f ]

ip_sf_list_clear_all() needs to be defined even if !CONFIG_IP_MULTICAST

Fixes: 3580d04aa674 ("ipv4/igmp: fix another memory leak in igmpv3_del_delrec()")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: kbuild test robot &lt;lkp@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 903869bd10e6719b9df6718e785be7ec725df59f ]

ip_sf_list_clear_all() needs to be defined even if !CONFIG_IP_MULTICAST

Fixes: 3580d04aa674 ("ipv4/igmp: fix another memory leak in igmpv3_del_delrec()")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: kbuild test robot &lt;lkp@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv4/igmp: fix another memory leak in igmpv3_del_delrec()</title>
<updated>2019-06-09T07:18:11+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2019-05-22T23:51:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=5e5fda4b1480d8bd5136eeeb56269b3daec0163d'/>
<id>5e5fda4b1480d8bd5136eeeb56269b3daec0163d</id>
<content type='text'>
[ Upstream commit 3580d04aa674383c42de7b635d28e52a1e5bc72c ]

syzbot reported memory leaks [1] that I have back tracked to
a missing cleanup from igmpv3_del_delrec() when
(im-&gt;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:
    [&lt;000000006105011b&gt;] kmemleak_alloc_recursive include/linux/kmemleak.h:55 [inline]
    [&lt;000000006105011b&gt;] slab_post_alloc_hook mm/slab.h:439 [inline]
    [&lt;000000006105011b&gt;] slab_alloc mm/slab.c:3326 [inline]
    [&lt;000000006105011b&gt;] kmem_cache_alloc_trace+0x13d/0x280 mm/slab.c:3553
    [&lt;000000004bba8073&gt;] kmalloc include/linux/slab.h:547 [inline]
    [&lt;000000004bba8073&gt;] kzalloc include/linux/slab.h:742 [inline]
    [&lt;000000004bba8073&gt;] ip_mc_add1_src net/ipv4/igmp.c:1961 [inline]
    [&lt;000000004bba8073&gt;] ip_mc_add_src+0x36b/0x400 net/ipv4/igmp.c:2085
    [&lt;00000000a46a65a0&gt;] ip_mc_msfilter+0x22d/0x310 net/ipv4/igmp.c:2475
    [&lt;000000005956ca89&gt;] do_ip_setsockopt.isra.0+0x1795/0x1930 net/ipv4/ip_sockglue.c:957
    [&lt;00000000848e2d2f&gt;] ip_setsockopt+0x3b/0xb0 net/ipv4/ip_sockglue.c:1246
    [&lt;00000000b9db185c&gt;] udp_setsockopt+0x4e/0x90 net/ipv4/udp.c:2616
    [&lt;000000003028e438&gt;] sock_common_setsockopt+0x38/0x50 net/core/sock.c:3130
    [&lt;0000000015b65589&gt;] __sys_setsockopt+0x98/0x120 net/socket.c:2078
    [&lt;00000000ac198ef0&gt;] __do_sys_setsockopt net/socket.c:2089 [inline]
    [&lt;00000000ac198ef0&gt;] __se_sys_setsockopt net/socket.c:2086 [inline]
    [&lt;00000000ac198ef0&gt;] __x64_sys_setsockopt+0x26/0x30 net/socket.c:2086
    [&lt;000000000a770437&gt;] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:301
    [&lt;00000000d3adb93b&gt;] entry_SYSCALL_64_after_hwframe+0x44/0xa9

Fixes: 9c8bb163ae78 ("igmp, mld: Fix memory leak in igmpv3/mld_del_delrec()")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Hangbin Liu &lt;liuhangbin@gmail.com&gt;
Reported-by: syzbot &lt;syzkaller@googlegroups.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 3580d04aa674383c42de7b635d28e52a1e5bc72c ]

syzbot reported memory leaks [1] that I have back tracked to
a missing cleanup from igmpv3_del_delrec() when
(im-&gt;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:
    [&lt;000000006105011b&gt;] kmemleak_alloc_recursive include/linux/kmemleak.h:55 [inline]
    [&lt;000000006105011b&gt;] slab_post_alloc_hook mm/slab.h:439 [inline]
    [&lt;000000006105011b&gt;] slab_alloc mm/slab.c:3326 [inline]
    [&lt;000000006105011b&gt;] kmem_cache_alloc_trace+0x13d/0x280 mm/slab.c:3553
    [&lt;000000004bba8073&gt;] kmalloc include/linux/slab.h:547 [inline]
    [&lt;000000004bba8073&gt;] kzalloc include/linux/slab.h:742 [inline]
    [&lt;000000004bba8073&gt;] ip_mc_add1_src net/ipv4/igmp.c:1961 [inline]
    [&lt;000000004bba8073&gt;] ip_mc_add_src+0x36b/0x400 net/ipv4/igmp.c:2085
    [&lt;00000000a46a65a0&gt;] ip_mc_msfilter+0x22d/0x310 net/ipv4/igmp.c:2475
    [&lt;000000005956ca89&gt;] do_ip_setsockopt.isra.0+0x1795/0x1930 net/ipv4/ip_sockglue.c:957
    [&lt;00000000848e2d2f&gt;] ip_setsockopt+0x3b/0xb0 net/ipv4/ip_sockglue.c:1246
    [&lt;00000000b9db185c&gt;] udp_setsockopt+0x4e/0x90 net/ipv4/udp.c:2616
    [&lt;000000003028e438&gt;] sock_common_setsockopt+0x38/0x50 net/core/sock.c:3130
    [&lt;0000000015b65589&gt;] __sys_setsockopt+0x98/0x120 net/socket.c:2078
    [&lt;00000000ac198ef0&gt;] __do_sys_setsockopt net/socket.c:2089 [inline]
    [&lt;00000000ac198ef0&gt;] __se_sys_setsockopt net/socket.c:2086 [inline]
    [&lt;00000000ac198ef0&gt;] __x64_sys_setsockopt+0x26/0x30 net/socket.c:2086
    [&lt;000000000a770437&gt;] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:301
    [&lt;00000000d3adb93b&gt;] entry_SYSCALL_64_after_hwframe+0x44/0xa9

Fixes: 9c8bb163ae78 ("igmp, mld: Fix memory leak in igmpv3/mld_del_delrec()")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Hangbin Liu &lt;liuhangbin@gmail.com&gt;
Reported-by: syzbot &lt;syzkaller@googlegroups.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net-gro: fix use-after-free read in napi_gro_frags()</title>
<updated>2019-06-09T07:18:10+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2019-05-29T22:36:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=385ee66eaf88e1f04be973f623b81e4bf0ec0c6f'/>
<id>385ee66eaf88e1f04be973f623b81e4bf0ec0c6f</id>
<content type='text'>
[ Upstream commit a4270d6795b0580287453ea55974d948393e66ef ]

If a network driver provides to napi_gro_frags() an
skb with a page fragment of exactly 14 bytes, the call
to gro_pull_from_frag0() will 'consume' the fragment
by calling skb_frag_unref(skb, 0), and the page might
be freed and reused.

Reading eth-&gt;h_proto at the end of napi_frags_skb() might
read mangled data, or crash under specific debugging features.

BUG: KASAN: use-after-free in napi_frags_skb net/core/dev.c:5833 [inline]
BUG: KASAN: use-after-free in napi_gro_frags+0xc6f/0xd10 net/core/dev.c:5841
Read of size 2 at addr ffff88809366840c by task syz-executor599/8957

CPU: 1 PID: 8957 Comm: syz-executor599 Not tainted 5.2.0-rc1+ #32
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x172/0x1f0 lib/dump_stack.c:113
 print_address_description.cold+0x7c/0x20d mm/kasan/report.c:188
 __kasan_report.cold+0x1b/0x40 mm/kasan/report.c:317
 kasan_report+0x12/0x20 mm/kasan/common.c:614
 __asan_report_load_n_noabort+0xf/0x20 mm/kasan/generic_report.c:142
 napi_frags_skb net/core/dev.c:5833 [inline]
 napi_gro_frags+0xc6f/0xd10 net/core/dev.c:5841
 tun_get_user+0x2f3c/0x3ff0 drivers/net/tun.c:1991
 tun_chr_write_iter+0xbd/0x156 drivers/net/tun.c:2037
 call_write_iter include/linux/fs.h:1872 [inline]
 do_iter_readv_writev+0x5f8/0x8f0 fs/read_write.c:693
 do_iter_write fs/read_write.c:970 [inline]
 do_iter_write+0x184/0x610 fs/read_write.c:951
 vfs_writev+0x1b3/0x2f0 fs/read_write.c:1015
 do_writev+0x15b/0x330 fs/read_write.c:1058

Fixes: a50e233c50db ("net-gro: restore frag0 optimization")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: syzbot &lt;syzkaller@googlegroups.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit a4270d6795b0580287453ea55974d948393e66ef ]

If a network driver provides to napi_gro_frags() an
skb with a page fragment of exactly 14 bytes, the call
to gro_pull_from_frag0() will 'consume' the fragment
by calling skb_frag_unref(skb, 0), and the page might
be freed and reused.

Reading eth-&gt;h_proto at the end of napi_frags_skb() might
read mangled data, or crash under specific debugging features.

BUG: KASAN: use-after-free in napi_frags_skb net/core/dev.c:5833 [inline]
BUG: KASAN: use-after-free in napi_gro_frags+0xc6f/0xd10 net/core/dev.c:5841
Read of size 2 at addr ffff88809366840c by task syz-executor599/8957

CPU: 1 PID: 8957 Comm: syz-executor599 Not tainted 5.2.0-rc1+ #32
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x172/0x1f0 lib/dump_stack.c:113
 print_address_description.cold+0x7c/0x20d mm/kasan/report.c:188
 __kasan_report.cold+0x1b/0x40 mm/kasan/report.c:317
 kasan_report+0x12/0x20 mm/kasan/common.c:614
 __asan_report_load_n_noabort+0xf/0x20 mm/kasan/generic_report.c:142
 napi_frags_skb net/core/dev.c:5833 [inline]
 napi_gro_frags+0xc6f/0xd10 net/core/dev.c:5841
 tun_get_user+0x2f3c/0x3ff0 drivers/net/tun.c:1991
 tun_chr_write_iter+0xbd/0x156 drivers/net/tun.c:2037
 call_write_iter include/linux/fs.h:1872 [inline]
 do_iter_readv_writev+0x5f8/0x8f0 fs/read_write.c:693
 do_iter_write fs/read_write.c:970 [inline]
 do_iter_write+0x184/0x610 fs/read_write.c:951
 vfs_writev+0x1b3/0x2f0 fs/read_write.c:1015
 do_writev+0x15b/0x330 fs/read_write.c:1058

Fixes: a50e233c50db ("net-gro: restore frag0 optimization")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: syzbot &lt;syzkaller@googlegroups.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>llc: fix skb leak in llc_build_and_send_ui_pkt()</title>
<updated>2019-06-09T07:18:10+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2019-05-28T00:35:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=7c5453993245bd4d661903e468940196ab0c1b0f'/>
<id>7c5453993245bd4d661903e468940196ab0c1b0f</id>
<content type='text'>
[ Upstream commit 8fb44d60d4142cd2a440620cd291d346e23c131e ]

If llc_mac_hdr_init() returns an error, we must drop the skb
since no llc_build_and_send_ui_pkt() caller will take care of this.

BUG: memory leak
unreferenced object 0xffff8881202b6800 (size 2048):
  comm "syz-executor907", pid 7074, jiffies 4294943781 (age 8.590s)
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    1a 00 07 40 00 00 00 00 00 00 00 00 00 00 00 00  ...@............
  backtrace:
    [&lt;00000000e25b5abe&gt;] kmemleak_alloc_recursive include/linux/kmemleak.h:55 [inline]
    [&lt;00000000e25b5abe&gt;] slab_post_alloc_hook mm/slab.h:439 [inline]
    [&lt;00000000e25b5abe&gt;] slab_alloc mm/slab.c:3326 [inline]
    [&lt;00000000e25b5abe&gt;] __do_kmalloc mm/slab.c:3658 [inline]
    [&lt;00000000e25b5abe&gt;] __kmalloc+0x161/0x2c0 mm/slab.c:3669
    [&lt;00000000a1ae188a&gt;] kmalloc include/linux/slab.h:552 [inline]
    [&lt;00000000a1ae188a&gt;] sk_prot_alloc+0xd6/0x170 net/core/sock.c:1608
    [&lt;00000000ded25bbe&gt;] sk_alloc+0x35/0x2f0 net/core/sock.c:1662
    [&lt;000000002ecae075&gt;] llc_sk_alloc+0x35/0x170 net/llc/llc_conn.c:950
    [&lt;00000000551f7c47&gt;] llc_ui_create+0x7b/0x140 net/llc/af_llc.c:173
    [&lt;0000000029027f0e&gt;] __sock_create+0x164/0x250 net/socket.c:1430
    [&lt;000000008bdec225&gt;] sock_create net/socket.c:1481 [inline]
    [&lt;000000008bdec225&gt;] __sys_socket+0x69/0x110 net/socket.c:1523
    [&lt;00000000b6439228&gt;] __do_sys_socket net/socket.c:1532 [inline]
    [&lt;00000000b6439228&gt;] __se_sys_socket net/socket.c:1530 [inline]
    [&lt;00000000b6439228&gt;] __x64_sys_socket+0x1e/0x30 net/socket.c:1530
    [&lt;00000000cec820c1&gt;] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:301
    [&lt;000000000c32554f&gt;] entry_SYSCALL_64_after_hwframe+0x44/0xa9

BUG: memory leak
unreferenced object 0xffff88811d750d00 (size 224):
  comm "syz-executor907", pid 7074, jiffies 4294943781 (age 8.600s)
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    00 f0 0c 24 81 88 ff ff 00 68 2b 20 81 88 ff ff  ...$.....h+ ....
  backtrace:
    [&lt;0000000053026172&gt;] kmemleak_alloc_recursive include/linux/kmemleak.h:55 [inline]
    [&lt;0000000053026172&gt;] slab_post_alloc_hook mm/slab.h:439 [inline]
    [&lt;0000000053026172&gt;] slab_alloc_node mm/slab.c:3269 [inline]
    [&lt;0000000053026172&gt;] kmem_cache_alloc_node+0x153/0x2a0 mm/slab.c:3579
    [&lt;00000000fa8f3c30&gt;] __alloc_skb+0x6e/0x210 net/core/skbuff.c:198
    [&lt;00000000d96fdafb&gt;] alloc_skb include/linux/skbuff.h:1058 [inline]
    [&lt;00000000d96fdafb&gt;] alloc_skb_with_frags+0x5f/0x250 net/core/skbuff.c:5327
    [&lt;000000000a34a2e7&gt;] sock_alloc_send_pskb+0x269/0x2a0 net/core/sock.c:2225
    [&lt;00000000ee39999b&gt;] sock_alloc_send_skb+0x32/0x40 net/core/sock.c:2242
    [&lt;00000000e034d810&gt;] llc_ui_sendmsg+0x10a/0x540 net/llc/af_llc.c:933
    [&lt;00000000c0bc8445&gt;] sock_sendmsg_nosec net/socket.c:652 [inline]
    [&lt;00000000c0bc8445&gt;] sock_sendmsg+0x54/0x70 net/socket.c:671
    [&lt;000000003b687167&gt;] __sys_sendto+0x148/0x1f0 net/socket.c:1964
    [&lt;00000000922d78d9&gt;] __do_sys_sendto net/socket.c:1976 [inline]
    [&lt;00000000922d78d9&gt;] __se_sys_sendto net/socket.c:1972 [inline]
    [&lt;00000000922d78d9&gt;] __x64_sys_sendto+0x2a/0x30 net/socket.c:1972
    [&lt;00000000cec820c1&gt;] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:301
    [&lt;000000000c32554f&gt;] entry_SYSCALL_64_after_hwframe+0x44/0xa9

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: syzbot &lt;syzkaller@googlegroups.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 8fb44d60d4142cd2a440620cd291d346e23c131e ]

If llc_mac_hdr_init() returns an error, we must drop the skb
since no llc_build_and_send_ui_pkt() caller will take care of this.

BUG: memory leak
unreferenced object 0xffff8881202b6800 (size 2048):
  comm "syz-executor907", pid 7074, jiffies 4294943781 (age 8.590s)
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    1a 00 07 40 00 00 00 00 00 00 00 00 00 00 00 00  ...@............
  backtrace:
    [&lt;00000000e25b5abe&gt;] kmemleak_alloc_recursive include/linux/kmemleak.h:55 [inline]
    [&lt;00000000e25b5abe&gt;] slab_post_alloc_hook mm/slab.h:439 [inline]
    [&lt;00000000e25b5abe&gt;] slab_alloc mm/slab.c:3326 [inline]
    [&lt;00000000e25b5abe&gt;] __do_kmalloc mm/slab.c:3658 [inline]
    [&lt;00000000e25b5abe&gt;] __kmalloc+0x161/0x2c0 mm/slab.c:3669
    [&lt;00000000a1ae188a&gt;] kmalloc include/linux/slab.h:552 [inline]
    [&lt;00000000a1ae188a&gt;] sk_prot_alloc+0xd6/0x170 net/core/sock.c:1608
    [&lt;00000000ded25bbe&gt;] sk_alloc+0x35/0x2f0 net/core/sock.c:1662
    [&lt;000000002ecae075&gt;] llc_sk_alloc+0x35/0x170 net/llc/llc_conn.c:950
    [&lt;00000000551f7c47&gt;] llc_ui_create+0x7b/0x140 net/llc/af_llc.c:173
    [&lt;0000000029027f0e&gt;] __sock_create+0x164/0x250 net/socket.c:1430
    [&lt;000000008bdec225&gt;] sock_create net/socket.c:1481 [inline]
    [&lt;000000008bdec225&gt;] __sys_socket+0x69/0x110 net/socket.c:1523
    [&lt;00000000b6439228&gt;] __do_sys_socket net/socket.c:1532 [inline]
    [&lt;00000000b6439228&gt;] __se_sys_socket net/socket.c:1530 [inline]
    [&lt;00000000b6439228&gt;] __x64_sys_socket+0x1e/0x30 net/socket.c:1530
    [&lt;00000000cec820c1&gt;] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:301
    [&lt;000000000c32554f&gt;] entry_SYSCALL_64_after_hwframe+0x44/0xa9

BUG: memory leak
unreferenced object 0xffff88811d750d00 (size 224):
  comm "syz-executor907", pid 7074, jiffies 4294943781 (age 8.600s)
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    00 f0 0c 24 81 88 ff ff 00 68 2b 20 81 88 ff ff  ...$.....h+ ....
  backtrace:
    [&lt;0000000053026172&gt;] kmemleak_alloc_recursive include/linux/kmemleak.h:55 [inline]
    [&lt;0000000053026172&gt;] slab_post_alloc_hook mm/slab.h:439 [inline]
    [&lt;0000000053026172&gt;] slab_alloc_node mm/slab.c:3269 [inline]
    [&lt;0000000053026172&gt;] kmem_cache_alloc_node+0x153/0x2a0 mm/slab.c:3579
    [&lt;00000000fa8f3c30&gt;] __alloc_skb+0x6e/0x210 net/core/skbuff.c:198
    [&lt;00000000d96fdafb&gt;] alloc_skb include/linux/skbuff.h:1058 [inline]
    [&lt;00000000d96fdafb&gt;] alloc_skb_with_frags+0x5f/0x250 net/core/skbuff.c:5327
    [&lt;000000000a34a2e7&gt;] sock_alloc_send_pskb+0x269/0x2a0 net/core/sock.c:2225
    [&lt;00000000ee39999b&gt;] sock_alloc_send_skb+0x32/0x40 net/core/sock.c:2242
    [&lt;00000000e034d810&gt;] llc_ui_sendmsg+0x10a/0x540 net/llc/af_llc.c:933
    [&lt;00000000c0bc8445&gt;] sock_sendmsg_nosec net/socket.c:652 [inline]
    [&lt;00000000c0bc8445&gt;] sock_sendmsg+0x54/0x70 net/socket.c:671
    [&lt;000000003b687167&gt;] __sys_sendto+0x148/0x1f0 net/socket.c:1964
    [&lt;00000000922d78d9&gt;] __do_sys_sendto net/socket.c:1976 [inline]
    [&lt;00000000922d78d9&gt;] __se_sys_sendto net/socket.c:1972 [inline]
    [&lt;00000000922d78d9&gt;] __x64_sys_sendto+0x2a/0x30 net/socket.c:1972
    [&lt;00000000cec820c1&gt;] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:301
    [&lt;000000000c32554f&gt;] entry_SYSCALL_64_after_hwframe+0x44/0xa9

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: syzbot &lt;syzkaller@googlegroups.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6: Consider sk_bound_dev_if when binding a raw socket to an address</title>
<updated>2019-06-09T07:18:10+00:00</updated>
<author>
<name>Mike Manning</name>
<email>mmanning@vyatta.att-mail.com</email>
</author>
<published>2019-05-20T18:57:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=b77654713a3c696afa7c81b3e4c81b0234223857'/>
<id>b77654713a3c696afa7c81b3e4c81b0234223857</id>
<content type='text'>
[ Upstream commit 72f7cfab6f93a8ea825fab8ccfb016d064269f7f ]

IPv6 does not consider if the socket is bound to a device when binding
to an address. The result is that a socket can be bound to eth0 and
then bound to the address of eth1. If the device is a VRF, the result
is that a socket can only be bound to an address in the default VRF.

Resolve by considering the device if sk_bound_dev_if is set.

Signed-off-by: Mike Manning &lt;mmanning@vyatta.att-mail.com&gt;
Reviewed-by: David Ahern &lt;dsahern@gmail.com&gt;
Tested-by: David Ahern &lt;dsahern@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 72f7cfab6f93a8ea825fab8ccfb016d064269f7f ]

IPv6 does not consider if the socket is bound to a device when binding
to an address. The result is that a socket can be bound to eth0 and
then bound to the address of eth1. If the device is a VRF, the result
is that a socket can only be bound to an address in the default VRF.

Resolve by considering the device if sk_bound_dev_if is set.

Signed-off-by: Mike Manning &lt;mmanning@vyatta.att-mail.com&gt;
Reviewed-by: David Ahern &lt;dsahern@gmail.com&gt;
Tested-by: David Ahern &lt;dsahern@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>inet: switch IP ID generator to siphash</title>
<updated>2019-06-09T07:18:10+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2019-03-27T19:40:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=e10789acbe6a76b304f45cbc8bb77a926ae4f201'/>
<id>e10789acbe6a76b304f45cbc8bb77a926ae4f201</id>
<content type='text'>
[ Upstream commit df453700e8d81b1bdafdf684365ee2b9431fb702 ]

According to Amit Klein and Benny Pinkas, IP ID generation is too weak
and might be used by attackers.

Even with recent net_hash_mix() fix (netns: provide pure entropy for net_hash_mix())
having 64bit key and Jenkins hash is risky.

It is time to switch to siphash and its 128bit keys.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: Amit Klein &lt;aksecurity@gmail.com&gt;
Reported-by: Benny Pinkas &lt;benny@pinkas.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit df453700e8d81b1bdafdf684365ee2b9431fb702 ]

According to Amit Klein and Benny Pinkas, IP ID generation is too weak
and might be used by attackers.

Even with recent net_hash_mix() fix (netns: provide pure entropy for net_hash_mix())
having 64bit key and Jenkins hash is risky.

It is time to switch to siphash and its 128bit keys.

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: Amit Klein &lt;aksecurity@gmail.com&gt;
Reported-by: Benny Pinkas &lt;benny@pinkas.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>batman-adv: allow updating DAT entry timeouts on incoming ARP Replies</title>
<updated>2019-05-31T13:47:33+00:00</updated>
<author>
<name>Linus Lüssing</name>
<email>linus.luessing@c0d3.blue</email>
</author>
<published>2019-02-14T15:52:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=504eff555106cbba3a5429fe20924c9d4feeda26'/>
<id>504eff555106cbba3a5429fe20924c9d4feeda26</id>
<content type='text'>
[ Upstream commit 099e6cc1582dc2903fecb898bbeae8f7cf4262c7 ]

Currently incoming ARP Replies, for example via a DHT-PUT message, do
not update the timeout for an already existing DAT entry. These ARP
Replies are dropped instead.

This however defeats the purpose of the DHCPACK snooping, for instance.
Right now, a DAT entry in the DHT will be purged every five minutes,
likely leading to a mesh-wide ARP Request broadcast after this timeout.
Which then recreates the entry. The idea of the DHCPACK snooping is to
be able to update an entry before a timeout happens, to avoid ARP Request
flooding.

This patch fixes this issue by updating a DAT entry on incoming
ARP Replies even if a matching DAT entry already exists. While still
filtering the ARP Reply towards the soft-interface, to avoid duplicate
messages on the client device side.

Signed-off-by: Linus Lüssing &lt;linus.luessing@c0d3.blue&gt;
Acked-by: Antonio Quartulli &lt;a@unstable.cc&gt;
Signed-off-by: Sven Eckelmann &lt;sven@narfation.org&gt;
Signed-off-by: Simon Wunderlich &lt;sw@simonwunderlich.de&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 099e6cc1582dc2903fecb898bbeae8f7cf4262c7 ]

Currently incoming ARP Replies, for example via a DHT-PUT message, do
not update the timeout for an already existing DAT entry. These ARP
Replies are dropped instead.

This however defeats the purpose of the DHCPACK snooping, for instance.
Right now, a DAT entry in the DHT will be purged every five minutes,
likely leading to a mesh-wide ARP Request broadcast after this timeout.
Which then recreates the entry. The idea of the DHCPACK snooping is to
be able to update an entry before a timeout happens, to avoid ARP Request
flooding.

This patch fixes this issue by updating a DAT entry on incoming
ARP Replies even if a matching DAT entry already exists. While still
filtering the ARP Reply towards the soft-interface, to avoid duplicate
messages on the client device side.

Signed-off-by: Linus Lüssing &lt;linus.luessing@c0d3.blue&gt;
Acked-by: Antonio Quartulli &lt;a@unstable.cc&gt;
Signed-off-by: Sven Eckelmann &lt;sven@narfation.org&gt;
Signed-off-by: Simon Wunderlich &lt;sw@simonwunderlich.de&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211/cfg80211: update bss channel on channel switch</title>
<updated>2019-05-31T13:47:22+00:00</updated>
<author>
<name>Sergey Matyukevich</name>
<email>sergey.matyukevich.os@quantenna.com</email>
</author>
<published>2019-03-26T09:27:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=f213a1d5c03a4e5c3360bcb043095b0bddad71c5'/>
<id>f213a1d5c03a4e5c3360bcb043095b0bddad71c5</id>
<content type='text'>
[ Upstream commit 5dc8cdce1d722c733f8c7af14c5fb595cfedbfa8 ]

FullMAC STAs have no way to update bss channel after CSA channel switch
completion. As a result, user-space tools may provide inconsistent
channel info. For instance, consider the following two commands:
$ sudo iw dev wlan0 link
$ sudo iw dev wlan0 info
The latter command gets channel info from the hardware, so most probably
its output will be correct. However the former command gets channel info
from scan cache, so its output will contain outdated channel info.
In fact, current bss channel info will not be updated until the
next [re-]connect.

Note that mac80211 STAs have a workaround for this, but it requires
access to internal cfg80211 data, see ieee80211_chswitch_work:

	/* XXX: shouldn't really modify cfg80211-owned data! */
	ifmgd-&gt;associated-&gt;channel = sdata-&gt;csa_chandef.chan;

This patch suggests to convert mac80211 workaround into cfg80211 behavior
and to update current bss channel in cfg80211_ch_switch_notify.

Signed-off-by: Sergey Matyukevich &lt;sergey.matyukevich.os@quantenna.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 5dc8cdce1d722c733f8c7af14c5fb595cfedbfa8 ]

FullMAC STAs have no way to update bss channel after CSA channel switch
completion. As a result, user-space tools may provide inconsistent
channel info. For instance, consider the following two commands:
$ sudo iw dev wlan0 link
$ sudo iw dev wlan0 info
The latter command gets channel info from the hardware, so most probably
its output will be correct. However the former command gets channel info
from scan cache, so its output will contain outdated channel info.
In fact, current bss channel info will not be updated until the
next [re-]connect.

Note that mac80211 STAs have a workaround for this, but it requires
access to internal cfg80211 data, see ieee80211_chswitch_work:

	/* XXX: shouldn't really modify cfg80211-owned data! */
	ifmgd-&gt;associated-&gt;channel = sdata-&gt;csa_chandef.chan;

This patch suggests to convert mac80211 workaround into cfg80211 behavior
and to update current bss channel in cfg80211_ch_switch_notify.

Signed-off-by: Sergey Matyukevich &lt;sergey.matyukevich.os@quantenna.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
