<feed xmlns='http://www.w3.org/2005/Atom'>
<title>xavi/android_kernel_m2note/net/irda/iriap.c, branch ng-7.1.2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://gitea.privatedns.org/xavi/android_kernel_m2note/atom?h=ng-7.1.2</id>
<link rel='self' href='https://gitea.privatedns.org/xavi/android_kernel_m2note/atom?h=ng-7.1.2'/>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/android_kernel_m2note/'/>
<updated>2017-04-11T08:58:36+00:00</updated>
<entry>
<title>net/irda: handle iriap_register_lsap() allocation failure</title>
<updated>2017-04-11T08:58:36+00:00</updated>
<author>
<name>Vegard Nossum</name>
<email>vegard.nossum@oracle.com</email>
</author>
<published>2016-08-12T08:29:13+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/android_kernel_m2note/commit/?id=1358eab7f231bbaba51df33669dfb808d3e418dd'/>
<id>urn:sha1:1358eab7f231bbaba51df33669dfb808d3e418dd</id>
<content type='text'>
commit 5ba092efc7ddff040777ae7162f1d195f513571b upstream.

If iriap_register_lsap() fails to allocate memory, self-&gt;lsap is
set to NULL. However, none of the callers handle the failure and
irlmp_connect_request() will happily dereference it:

    iriap_register_lsap: Unable to allocated LSAP!
    ================================================================================
    UBSAN: Undefined behaviour in net/irda/irlmp.c:378:2
    member access within null pointer of type 'struct lsap_cb'
    CPU: 1 PID: 15403 Comm: trinity-c0 Not tainted 4.8.0-rc1+ #81
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org
    04/01/2014
     0000000000000000 ffff88010c7e78a8 ffffffff82344f40 0000000041b58ab3
     ffffffff84f98000 ffffffff82344e94 ffff88010c7e78d0 ffff88010c7e7880
     ffff88010630ad00 ffffffff84a5fae0 ffffffff84d3f5c0 000000000000017a
    Call Trace:
     [&lt;ffffffff82344f40&gt;] dump_stack+0xac/0xfc
     [&lt;ffffffff8242f5a8&gt;] ubsan_epilogue+0xd/0x8a
     [&lt;ffffffff824302bf&gt;] __ubsan_handle_type_mismatch+0x157/0x411
     [&lt;ffffffff83b7bdbc&gt;] irlmp_connect_request+0x7ac/0x970
     [&lt;ffffffff83b77cc0&gt;] iriap_connect_request+0xa0/0x160
     [&lt;ffffffff83b77f48&gt;] state_s_disconnect+0x88/0xd0
     [&lt;ffffffff83b78904&gt;] iriap_do_client_event+0x94/0x120
     [&lt;ffffffff83b77710&gt;] iriap_getvaluebyclass_request+0x3e0/0x6d0
     [&lt;ffffffff83ba6ebb&gt;] irda_find_lsap_sel+0x1eb/0x630
     [&lt;ffffffff83ba90c8&gt;] irda_connect+0x828/0x12d0
     [&lt;ffffffff833c0dfb&gt;] SYSC_connect+0x22b/0x340
     [&lt;ffffffff833c7e09&gt;] SyS_connect+0x9/0x10
     [&lt;ffffffff81007bd3&gt;] do_syscall_64+0x1b3/0x4b0
     [&lt;ffffffff845f946a&gt;] entry_SYSCALL64_slow_path+0x25/0x25
    ================================================================================

The bug seems to have been around since forever.

There's more problems with missing error checks in iriap_init() (and
indeed all of irda_init()), but that's a bigger problem that needs
very careful review and testing. This patch will fix the most serious
bug (as it's easily reached from unprivileged userspace).

I have tested my patch with a reproducer.

Signed-off-by: Vegard Nossum &lt;vegard.nossum@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Willy Tarreau &lt;w@1wt.eu&gt;
</content>
</entry>
<entry>
<title>first commit</title>
<updated>2016-08-15T02:19:42+00:00</updated>
<author>
<name>Meizu OpenSource</name>
<email>patchwork@meizu.com</email>
</author>
<published>2016-08-15T02:19:42+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/android_kernel_m2note/commit/?id=d2e1446d81725c351dc73a03b397ce043fb18452'/>
<id>urn:sha1:d2e1446d81725c351dc73a03b397ce043fb18452</id>
<content type='text'>
</content>
</entry>
</feed>
