Bluetooth: Fix RFCOMM bind fail for L2CAP sock

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Fri Nov 22 17:59:06 EST 2013


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=c507f138fc7c2025d75b65018810dc0561d0bdb9
Commit:     c507f138fc7c2025d75b65018810dc0561d0bdb9
Parent:     60c7a3c9c77239d5a7430c42a2c796881716cca1
Author:     Seung-Woo Kim <sw0312.kim at samsung.com>
AuthorDate: Tue Nov 5 16:02:24 2013 +0900
Committer:  Gustavo Padovan <gustavo.padovan at collabora.co.uk>
CommitDate: Wed Nov 13 11:36:53 2013 -0200

    Bluetooth: Fix RFCOMM bind fail for L2CAP sock
    
    L2CAP socket bind checks its bdaddr type but RFCOMM kernel thread
    does not assign proper bdaddr type for L2CAP sock. This can cause
    that RFCOMM failure.
    
    Signed-off-by: Seung-Woo Kim <sw0312.kim at samsung.com>
    Signed-off-by: Marcel Holtmann <marcel at holtmann.org>
---
 net/bluetooth/rfcomm/core.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c
index ca957d3..292fa64 100644
--- a/net/bluetooth/rfcomm/core.c
+++ b/net/bluetooth/rfcomm/core.c
@@ -694,6 +694,7 @@ static struct rfcomm_session *rfcomm_session_create(bdaddr_t *src,
 	addr.l2_family = AF_BLUETOOTH;
 	addr.l2_psm    = 0;
 	addr.l2_cid    = 0;
+	addr.l2_bdaddr_type = BDADDR_BREDR;
 	*err = kernel_bind(sock, (struct sockaddr *) &addr, sizeof(addr));
 	if (*err < 0)
 		goto failed;
@@ -1983,6 +1984,7 @@ static int rfcomm_add_listener(bdaddr_t *ba)
 	addr.l2_family = AF_BLUETOOTH;
 	addr.l2_psm    = __constant_cpu_to_le16(RFCOMM_PSM);
 	addr.l2_cid    = 0;
+	addr.l2_bdaddr_type = BDADDR_BREDR;
 	err = kernel_bind(sock, (struct sockaddr *) &addr, sizeof(addr));
 	if (err < 0) {
 		BT_ERR("Bind failed %d", err);



More information about the linux-mtd-cvs mailing list