* [PATCH] Bluetooth: Fix RFCOMM bind fail for L2CAP sock
@ 2013-11-05 7:02 Seung-Woo Kim
2013-11-05 7:26 ` Marcel Holtmann
0 siblings, 1 reply; 6+ messages in thread
From: Seung-Woo Kim @ 2013-11-05 7:02 UTC (permalink / raw)
To: linux-bluetooth, marcel, gustavo, johan.hedberg; +Cc: sw0312.kim, s.syam
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@samsung.com>
---
The issue is came from following commit, but it is only in bluetooth-next tree,
so this patch is not needed for stable tree.
commit 80c1a2e76dbb36588facb265ab364b1302f7ef8c
Author: Johan Hedberg <johan.hedberg@intel.com>
Date: Mon Oct 14 21:17:52 2013 +0300
Bluetooth: Reject invalid bdaddr types for sockets
This patch is based on commit cca34b785a21d220176038c45071ffe842e99fd3 of
bluetooth-next tree.
---
net/bluetooth/rfcomm/core.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c
index 94d06cb..ca55ea1 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);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] Bluetooth: Fix RFCOMM bind fail for L2CAP sock
2013-11-05 7:02 [PATCH] Bluetooth: Fix RFCOMM bind fail for L2CAP sock Seung-Woo Kim
@ 2013-11-05 7:26 ` Marcel Holtmann
2013-11-05 7:38 ` Seung-Woo Kim
0 siblings, 1 reply; 6+ messages in thread
From: Marcel Holtmann @ 2013-11-05 7:26 UTC (permalink / raw)
To: Seung-Woo Kim
Cc: linux-bluetooth@vger.kernel.org development, Gustavo F. Padovan,
Johan Hedberg, Syam Sidhardhan
Hi Seung-Woo,
> 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@samsung.com>
> ---
> The issue is came from following commit, but it is only in bluetooth-next tree,
> so this patch is not needed for stable tree.
>
> commit 80c1a2e76dbb36588facb265ab364b1302f7ef8c
> Author: Johan Hedberg <johan.hedberg@intel.com>
> Date: Mon Oct 14 21:17:52 2013 +0300
>
> Bluetooth: Reject invalid bdaddr types for sockets
>
> This patch is based on commit cca34b785a21d220176038c45071ffe842e99fd3 of
> bluetooth-next tree.
> ---
> net/bluetooth/rfcomm/core.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
good catch. Patch has been applied to bluetooth-next tree.
You might also want to send a patch that adds the l2_bdaddr_type setting before the connect() call.
Regards
Marcel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Bluetooth: Fix RFCOMM bind fail for L2CAP sock
2013-11-05 7:26 ` Marcel Holtmann
@ 2013-11-05 7:38 ` Seung-Woo Kim
2013-11-05 7:58 ` Marcel Holtmann
0 siblings, 1 reply; 6+ messages in thread
From: Seung-Woo Kim @ 2013-11-05 7:38 UTC (permalink / raw)
To: Marcel Holtmann
Cc: linux-bluetooth@vger.kernel.org development, Gustavo F. Padovan,
Johan Hedberg, Syam Sidhardhan, Seung-Woo Kim
Hello Marcel Holtmann,
On 2013년 11월 05일 16:26, Marcel Holtmann wrote:
> Hi Seung-Woo,
>
>> 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@samsung.com>
>> ---
>> The issue is came from following commit, but it is only in bluetooth-next tree,
>> so this patch is not needed for stable tree.
>>
>> commit 80c1a2e76dbb36588facb265ab364b1302f7ef8c
>> Author: Johan Hedberg <johan.hedberg@intel.com>
>> Date: Mon Oct 14 21:17:52 2013 +0300
>>
>> Bluetooth: Reject invalid bdaddr types for sockets
>>
>> This patch is based on commit cca34b785a21d220176038c45071ffe842e99fd3 of
>> bluetooth-next tree.
>> ---
>> net/bluetooth/rfcomm/core.c | 2 ++
>> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> good catch. Patch has been applied to bluetooth-next tree.
>
> You might also want to send a patch that adds the l2_bdaddr_type setting before the connect() call.
Case of kernel_connect() in rfcomm_session_create(), it reuses
l2_bdaddr_type used for kernel_bind(), so it works fine for me: I tested
both incoming connection and outgoing connection cases of rfcomm.
But if you prefer explicit setting for connect(), please let me know.
Best Regards,
- Seung-Woo Kim
>
> Regards
>
> Marcel
>
>
--
Seung-Woo Kim
Samsung Software R&D Center
--
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Bluetooth: Fix RFCOMM bind fail for L2CAP sock
2013-11-05 7:38 ` Seung-Woo Kim
@ 2013-11-05 7:58 ` Marcel Holtmann
2013-11-05 8:15 ` [PATCH] Bluetooth: Fix to set proper bdaddr_type for RFCOMM connect Seung-Woo Kim
0 siblings, 1 reply; 6+ messages in thread
From: Marcel Holtmann @ 2013-11-05 7:58 UTC (permalink / raw)
To: Seung-Woo Kim
Cc: linux-bluetooth@vger.kernel.org development, Gustavo F. Padovan,
Johan Hedberg, Syam Sidhardhan
Hi Seung-Woo,
>>> 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@samsung.com>
>>> ---
>>> The issue is came from following commit, but it is only in bluetooth-next tree,
>>> so this patch is not needed for stable tree.
>>>
>>> commit 80c1a2e76dbb36588facb265ab364b1302f7ef8c
>>> Author: Johan Hedberg <johan.hedberg@intel.com>
>>> Date: Mon Oct 14 21:17:52 2013 +0300
>>>
>>> Bluetooth: Reject invalid bdaddr types for sockets
>>>
>>> This patch is based on commit cca34b785a21d220176038c45071ffe842e99fd3 of
>>> bluetooth-next tree.
>>> ---
>>> net/bluetooth/rfcomm/core.c | 2 ++
>>> 1 files changed, 2 insertions(+), 0 deletions(-)
>>
>> good catch. Patch has been applied to bluetooth-next tree.
>>
>> You might also want to send a patch that adds the l2_bdaddr_type setting before the connect() call.
>
> Case of kernel_connect() in rfcomm_session_create(), it reuses
> l2_bdaddr_type used for kernel_bind(), so it works fine for me: I tested
> both incoming connection and outgoing connection cases of rfcomm.
> But if you prefer explicit setting for connect(), please let me know.
I realized that it will just work fine. But it is better style to add an explicit setting in the connect() case as well. It is less error prone in the future.
Regards
Marcel
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] Bluetooth: Fix to set proper bdaddr_type for RFCOMM connect
2013-11-05 7:58 ` Marcel Holtmann
@ 2013-11-05 8:15 ` Seung-Woo Kim
2013-11-05 12:07 ` Marcel Holtmann
0 siblings, 1 reply; 6+ messages in thread
From: Seung-Woo Kim @ 2013-11-05 8:15 UTC (permalink / raw)
To: linux-bluetooth, marcel; +Cc: gustavo, johan.hedberg, sw0312.kim, s.syam
L2CAP socket validates proper bdaddr_type for connect, so this
patch fixes to set explictly bdaddr_type for RFCOMM connect.
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
---
net/bluetooth/rfcomm/core.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c
index ca55ea1..facd8a7 100644
--- a/net/bluetooth/rfcomm/core.c
+++ b/net/bluetooth/rfcomm/core.c
@@ -720,6 +720,7 @@ static struct rfcomm_session *rfcomm_session_create(bdaddr_t *src,
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_connect(sock, (struct sockaddr *) &addr, sizeof(addr), O_NONBLOCK);
if (*err == 0 || *err == -EINPROGRESS)
return s;
--
1.7.4.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] Bluetooth: Fix to set proper bdaddr_type for RFCOMM connect
2013-11-05 8:15 ` [PATCH] Bluetooth: Fix to set proper bdaddr_type for RFCOMM connect Seung-Woo Kim
@ 2013-11-05 12:07 ` Marcel Holtmann
0 siblings, 0 replies; 6+ messages in thread
From: Marcel Holtmann @ 2013-11-05 12:07 UTC (permalink / raw)
To: Seung-Woo Kim
Cc: linux-bluetooth@vger.kernel.org development, Gustavo F. Padovan,
Johan Hedberg, Syam Sidhardhan
Hi Seung-Woo,
> L2CAP socket validates proper bdaddr_type for connect, so this
> patch fixes to set explictly bdaddr_type for RFCOMM connect.
>
> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
> ---
> net/bluetooth/rfcomm/core.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
patch has been applied to bluetooth-next tree.
Regards
Marcel
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-11-05 12:07 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-05 7:02 [PATCH] Bluetooth: Fix RFCOMM bind fail for L2CAP sock Seung-Woo Kim
2013-11-05 7:26 ` Marcel Holtmann
2013-11-05 7:38 ` Seung-Woo Kim
2013-11-05 7:58 ` Marcel Holtmann
2013-11-05 8:15 ` [PATCH] Bluetooth: Fix to set proper bdaddr_type for RFCOMM connect Seung-Woo Kim
2013-11-05 12:07 ` Marcel Holtmann
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.