<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/bluetooth/l2cap.c, branch linux-2.6.32.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.32.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.32.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2013-06-10T09:43:00Z</updated>
<entry>
<title>Bluetooth: L2CAP - Fix info leak via getsockname()</title>
<updated>2013-06-10T09:43:00Z</updated>
<author>
<name>Mathias Krause</name>
</author>
<published>2012-08-15T11:31:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cb15ea45068c50395623764bba398347cc20c81d'/>
<id>urn:sha1:cb15ea45068c50395623764bba398347cc20c81d</id>
<content type='text'>
commit 792039c73cf176c8e39a6e8beef2c94ff46522ed upstream.

The L2CAP code fails to initialize the l2_bdaddr_type member of struct
sockaddr_l2 and the padding byte added for alignment. It that for leaks
two bytes kernel stack via the getsockname() syscall. Add an explicit
memset(0) before filling the structure to avoid the info leak.

Signed-off-by: Mathias Krause &lt;minipli@googlemail.com&gt;
Cc: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Cc: Gustavo Padovan &lt;gustavo@padovan.org&gt;
Cc: Johan Hedberg &lt;johan.hedberg@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
[bwh: Backported to 2.6.32: adjust filename]
Signed-off-by: Willy Tarreau &lt;w@1wt.eu&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Prevent buffer overflow in l2cap config request</title>
<updated>2011-11-07T20:32:51Z</updated>
<author>
<name>Dan Rosenberg</name>
</author>
<published>2011-06-24T12:38:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9bb38ae0b3a03b774dd026bf1c7758d2d107f464'/>
<id>urn:sha1:9bb38ae0b3a03b774dd026bf1c7758d2d107f464</id>
<content type='text'>
commit 7ac28817536797fd40e9646452183606f9e17f71 upstream.

A remote user can provide a small value for the command size field in
the command header of an l2cap configuration request, resulting in an
integer underflow when subtracting the size of the configuration request
header.  This results in copying a very large amount of data via
memcpy() and destroying the kernel heap.  Check for underflow.

Signed-off-by: Dan Rosenberg &lt;drosenberg@vsecurity.com&gt;
Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;


</content>
</entry>
<entry>
<title>Bluetooth: l2cap and rfcomm: fix 1 byte infoleak to userspace.</title>
<updated>2011-11-07T20:32:48Z</updated>
<author>
<name>Filip Palian</name>
</author>
<published>2011-05-12T17:32:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d77e3459f7edf03567024ad9442dace4bcb81b9c'/>
<id>urn:sha1:d77e3459f7edf03567024ad9442dace4bcb81b9c</id>
<content type='text'>
commit 8d03e971cf403305217b8e62db3a2e5ad2d6263f upstream.

Structures "l2cap_conninfo" and "rfcomm_conninfo" have one padding
byte each. This byte in "cinfo" is copied to userspace uninitialized.

Signed-off-by: Filip Palian &lt;filip.palian@pjwstk.edu.pl&gt;
Acked-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Gustavo F. Padovan &lt;padovan@profusion.mobi&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>Bluetooth: Fix kernel crash on L2CAP stress tests</title>
<updated>2010-04-01T22:58:55Z</updated>
<author>
<name>Andrei Emeltchenko</name>
</author>
<published>2010-03-19T08:26:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fc4da4ab6ea18f1f5073c2af98d554cd69f632e8'/>
<id>urn:sha1:fc4da4ab6ea18f1f5073c2af98d554cd69f632e8</id>
<content type='text'>
commit c2c77ec83bdad17fb688557b5b3fdc36661dd1c6 upstream.

Added very simple check that req buffer has enough space to
fit configuration parameters. Shall be enough to reject packets
with configuration size more than req buffer.

Crash trace below

[ 6069.659393] Unable to handle kernel paging request at virtual address 02000205
[ 6069.673034] Internal error: Oops: 805 [#1] PREEMPT
...
[ 6069.727172] PC is at l2cap_add_conf_opt+0x70/0xf0 [l2cap]
[ 6069.732604] LR is at l2cap_recv_frame+0x1350/0x2e78 [l2cap]
...
[ 6070.030303] Backtrace:
[ 6070.032806] [&lt;bf1c2880&gt;] (l2cap_add_conf_opt+0x0/0xf0 [l2cap]) from
[&lt;bf1c6624&gt;] (l2cap_recv_frame+0x1350/0x2e78 [l2cap])
[ 6070.043823]  r8:dc5d3100 r7:df2a91d6 r6:00000001 r5:df2a8000 r4:00000200
[ 6070.050659] [&lt;bf1c52d4&gt;] (l2cap_recv_frame+0x0/0x2e78 [l2cap]) from
[&lt;bf1c8408&gt;] (l2cap_recv_acldata+0x2bc/0x350 [l2cap])
[ 6070.061798] [&lt;bf1c814c&gt;] (l2cap_recv_acldata+0x0/0x350 [l2cap]) from
[&lt;bf0037a4&gt;] (hci_rx_task+0x244/0x478 [bluetooth])
[ 6070.072631]  r6:dc647700 r5:00000001 r4:df2ab740
[ 6070.077362] [&lt;bf003560&gt;] (hci_rx_task+0x0/0x478 [bluetooth]) from
[&lt;c006b9fc&gt;] (tasklet_action+0x78/0xd8)
[ 6070.087005] [&lt;c006b984&gt;] (tasklet_action+0x0/0xd8) from [&lt;c006c160&gt;]

Signed-off-by: Andrei Emeltchenko &lt;andrei.emeltchenko@nokia.com&gt;
Acked-by: Gustavo F. Padovan &lt;gustavo@padovan.org&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>Bluetooth: Fix potential bad memory access with sysfs files</title>
<updated>2010-04-01T22:58:54Z</updated>
<author>
<name>Marcel Holtmann</name>
</author>
<published>2010-03-15T21:12:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e1c20f724d1f9f857dee1a13d0ecc11c4b834db7'/>
<id>urn:sha1:e1c20f724d1f9f857dee1a13d0ecc11c4b834db7</id>
<content type='text'>
commit 101545f6fef4a0a3ea8daf0b5b880df2c6a92a69 upstream.

When creating a high number of Bluetooth sockets (L2CAP, SCO
and RFCOMM) it is possible to scribble repeatedly on arbitrary
pages of memory. Ensure that the content of these sysfs files is
always less than one page. Even if this means truncating. The
files in question are scheduled to be moved over to debugfs in
the future anyway.

Based on initial patches from Neil Brown and Linus Torvalds

Reported-by: Neil Brown &lt;neilb@suse.de&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>Bluetooth: Fix regression with L2CAP configuration in Basic Mode</title>
<updated>2009-11-16T00:31:41Z</updated>
<author>
<name>Gustavo F. Padovan</name>
</author>
<published>2009-10-18T00:41:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=68ae6639b6dff117ba37f648f1611a4629abadf0'/>
<id>urn:sha1:68ae6639b6dff117ba37f648f1611a4629abadf0</id>
<content type='text'>
Basic Mode is the default mode of operation of a L2CAP entity. In
this case the RFC (Retransmission and Flow Control) configuration
option should not be used at all.

Normally remote L2CAP implementation should just ignore this option,
but it can cause various side effects with other Bluetooth stacks
that are not capable of handling unknown options.

Signed-off-by: Gustavo F. Padovan &lt;gustavo@las.ic.unicamp.br&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Select Basic Mode as default for SOCK_SEQPACKET</title>
<updated>2009-11-16T00:31:16Z</updated>
<author>
<name>Gustavo F. Padovan</name>
</author>
<published>2009-09-29T04:42:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a0e55a32afc2130e5ae506755e4b8eb42a23b568'/>
<id>urn:sha1:a0e55a32afc2130e5ae506755e4b8eb42a23b568</id>
<content type='text'>
The default mode for SOCK_SEQPACKET is Basic Mode. So when no
mode has been specified, Basic Mode shall be used.

This is important for current application to keep working as
expected and not cause a regression.

Signed-off-by: Gustavo F. Padovan &lt;gustavo@las.ic.unicamp.br&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
<entry>
<title>bluetooth: static lock key fix</title>
<updated>2009-10-20T02:36:49Z</updated>
<author>
<name>Dave Young</name>
</author>
<published>2009-10-18T20:28:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=45054dc1bf2367ccb0e7c0486037907cd9395f8b'/>
<id>urn:sha1:45054dc1bf2367ccb0e7c0486037907cd9395f8b</id>
<content type='text'>
When shutdown ppp connection, lockdep waring about non-static key
will happen, it is caused by the lock is not initialized properly
at that time.

Fix with tuning the lock/skb_queue_head init order

[   94.339261] INFO: trying to register non-static key.
[   94.342509] the code is fine but needs lockdep annotation.
[   94.342509] turning off the locking correctness validator.
[   94.342509] Pid: 0, comm: swapper Not tainted 2.6.31-mm1 #2
[   94.342509] Call Trace:
[   94.342509]  [&lt;c0248fbe&gt;] register_lock_class+0x58/0x241
[   94.342509]  [&lt;c024b5df&gt;] ? __lock_acquire+0xb57/0xb73
[   94.342509]  [&lt;c024ab34&gt;] __lock_acquire+0xac/0xb73
[   94.342509]  [&lt;c024b7fa&gt;] ? lock_release_non_nested+0x17b/0x1de
[   94.342509]  [&lt;c024b662&gt;] lock_acquire+0x67/0x84
[   94.342509]  [&lt;c04cd1eb&gt;] ? skb_dequeue+0x15/0x41
[   94.342509]  [&lt;c054a857&gt;] _spin_lock_irqsave+0x2f/0x3f
[   94.342509]  [&lt;c04cd1eb&gt;] ? skb_dequeue+0x15/0x41
[   94.342509]  [&lt;c04cd1eb&gt;] skb_dequeue+0x15/0x41
[   94.342509]  [&lt;c054a648&gt;] ? _read_unlock+0x1d/0x20
[   94.342509]  [&lt;c04cd641&gt;] skb_queue_purge+0x14/0x1b
[   94.342509]  [&lt;fab94fdc&gt;] l2cap_recv_frame+0xea1/0x115a [l2cap]
[   94.342509]  [&lt;c024b5df&gt;] ? __lock_acquire+0xb57/0xb73
[   94.342509]  [&lt;c0249c04&gt;] ? mark_lock+0x1e/0x1c7
[   94.342509]  [&lt;f8364963&gt;] ? hci_rx_task+0xd2/0x1bc [bluetooth]
[   94.342509]  [&lt;fab95346&gt;] l2cap_recv_acldata+0xb1/0x1c6 [l2cap]
[   94.342509]  [&lt;f8364997&gt;] hci_rx_task+0x106/0x1bc [bluetooth]
[   94.342509]  [&lt;fab95295&gt;] ? l2cap_recv_acldata+0x0/0x1c6 [l2cap]
[   94.342509]  [&lt;c02302c4&gt;] tasklet_action+0x69/0xc1
[   94.342509]  [&lt;c022fbef&gt;] __do_softirq+0x94/0x11e
[   94.342509]  [&lt;c022fcaf&gt;] do_softirq+0x36/0x5a
[   94.342509]  [&lt;c022fe14&gt;] irq_exit+0x35/0x68
[   94.342509]  [&lt;c0204ced&gt;] do_IRQ+0x72/0x89
[   94.342509]  [&lt;c02038ee&gt;] common_interrupt+0x2e/0x34
[   94.342509]  [&lt;c024007b&gt;] ? pm_qos_add_requirement+0x63/0x9d
[   94.342509]  [&lt;c038e8a5&gt;] ? acpi_idle_enter_bm+0x209/0x238
[   94.342509]  [&lt;c049d238&gt;] cpuidle_idle_call+0x5c/0x94
[   94.342509]  [&lt;c02023f8&gt;] cpu_idle+0x4e/0x6f
[   94.342509]  [&lt;c0534153&gt;] rest_init+0x53/0x55
[   94.342509]  [&lt;c0781894&gt;] start_kernel+0x2f0/0x2f5
[   94.342509]  [&lt;c0781091&gt;] i386_start_kernel+0x91/0x96

Reported-by: Oliver Hartkopp &lt;oliver@hartkopp.net&gt;
Signed-off-by: Dave Young &lt;hidave.darkstar@gmail.com&gt;
Tested-by: Oliver Hartkopp &lt;oliver@hartkopp.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: Make setsockopt() optlen be unsigned.</title>
<updated>2009-09-30T23:12:20Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2009-09-30T23:12:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b7058842c940ad2c08dd829b21e5c92ebe3b8758'/>
<id>urn:sha1:b7058842c940ad2c08dd829b21e5c92ebe3b8758</id>
<content type='text'>
This provides safety against negative optlen at the type
level instead of depending upon (sometimes non-trivial)
checks against this sprinkled all over the the place, in
each and every implementation.

Based upon work done by Arjan van de Ven and feedback
from Linus Torvalds.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Bluetooth: Add support for L2CAP 'Send RRorRNR' action</title>
<updated>2009-08-26T07:12:20Z</updated>
<author>
<name>Gustavo F. Padovan</name>
</author>
<published>2009-08-26T07:04:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7e7430908c3ccaf71f0851050c8ccaf9ecfb3b56'/>
<id>urn:sha1:7e7430908c3ccaf71f0851050c8ccaf9ecfb3b56</id>
<content type='text'>
When called, 'Send RRorRNR' should send a RNR frame if local device is
busy or a RR frame otherwise.

Signed-off-by: Gustavo F. Padovan &lt;gustavo@las.ic.unicamp.br&gt;
Signed-off-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
</content>
</entry>
</feed>
