Re: Query regarding MAP 1.2 implementation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Wed, Sep 3, 2014 at 3:18 PM, Gowtham Anandha Babu
<gowtham.ab@xxxxxxxxxxx> wrote:
> Hi,
>
>> -----Original Message-----
>> From: Luiz Augusto von Dentz [mailto:luiz.dentz@xxxxxxxxx]
>> Sent: Wednesday, September 03, 2014 5:34 PM
>> To: Gowtham Anandha Babu
>> Cc: linux-bluetooth@xxxxxxxxxxxxxxx; Bharat Panda
>> Subject: Re: Query regarding MAP 1.2 implementation
>>
>> Hi,
>>
>> On Wed, Sep 3, 2014 at 2:35 PM, Gowtham Anandha Babu
>> <gowtham.ab@xxxxxxxxxxx> wrote:
>> > Hi,
>> >
>> >> -----Original Message-----
>> >> From: Luiz Augusto von Dentz [mailto:luiz.dentz@xxxxxxxxx]
>> >> Sent: Wednesday, September 03, 2014 3:57 PM
>> >> To: Gowtham Anandha Babu
>> >> Cc: linux-bluetooth@xxxxxxxxxxxxxxx
>> >> Subject: Re: Query regarding MAP 1.2 implementation
>> >>
>> >> Hi,
>> >>
>> >> On Tue, Sep 2, 2014 at 11:28 AM, Luiz Augusto von Dentz
>> >> <luiz.dentz@xxxxxxxxx> wrote:
>> >> > Hi,
>> >> >
>> >> > On Tue, Sep 2, 2014 at 8:22 AM, Gowtham Anandha Babu
>> >> > <gowtham.ab@xxxxxxxxxxx> wrote:
>> >> >>
>> >> >> Hi Luiz,
>> >> >>
>> >> >>> -----Original Message-----
>> >> >>> From: linux-bluetooth-owner@xxxxxxxxxxxxxxx
>> >> >>> [mailto:linux-bluetooth- owner@xxxxxxxxxxxxxxx] On Behalf Of Luiz
>> >> >>> Augusto von Dentz
>> >> >>> Sent: Monday, September 01, 2014 6:37 PM
>> >> >>> To: Gowtham Anandha Babu
>> >> >>> Cc: linux-bluetooth@xxxxxxxxxxxxxxx; Bharat Panda
>> >> >>> Subject: Re: Query regarding MAP 1.2 implementation
>> >> >>>
>> >> >>> Hi,
>> >> >>>
>> >> >>> On Mon, Sep 1, 2014 at 3:29 PM, Gowtham Anandha Babu
>> >> >>> <gowtham.ab@xxxxxxxxxxx> wrote:
>> >> >>>
>> >> >>> > The current message-dummy.c looks like, it is creating a
>> >> >>> > virtual folder in the
>> >> >>> system (Ex. Home/PC-NAME/map-messages/).
>> >> >>> > So, I created the map-messages directory in home/PC-NAME/.
>> Then
>> >> >>> > I tried
>> >> >>> SETPATH (mentioned in the previous thread).
>> >> >>> > The output is...
>> >> >>> >
>> >> >>> >  obexd[29146]: obexd/src/obex.c:cmd_setpath()
>> >> >>> > obexd[29146]: SETPATH(0x5), (null)(0xffffffff)
>> >> >>> > obexd[29146]: obexd/src/obex.c:parse_name() NAME:
>> >> >>> > obexd[29146]: obexd/plugins/mas.c:mas_setpath() SETPATH: name
>> >> >>> nonhdr
>> >> >>> > 0x20
>> >> >>> > obexd[29146]: SETPATH(0x5), SUCCESS(0x20)
>> >> >>> >
>> >> >>> > But When I tried to call GetFolderListing() The output is...
>> >> >>> >
>> >> >>> > obexd[29146]: obexd/src/obex.c:cmd_get() session 0x1008c40
>> >> >>> > obexd[29146]: GET(0x3), (null)(0xffffffff)
>> >> >>> > obexd[29146]: obexd/src/obex.c:parse_type() TYPE:
>> >> >>> > x-obex/folder-listing
>> >> >>> > obexd[29146]: obexd/plugins/mas.c:mas_get() GET: name (null)
>> >> >>> > type x-obex/folder-listing mas 0x1015c00
>> >> >>> > obexd[29146]: obexd/plugins/mas.c:get_params() Error when
>> >> >>> > parsing
>> >> >>> parameters!
>> >> >>> > obexd[29146]: GET(0x3), BAD_REQUEST(0x40)
>> >> >>> >
>> >> >>> > But I had few folders created inside the map-messages.
>> >> >>>
>> >> >>> Bad request is normally when there is something wrong with the
>> >> >>> command itself, the error comes from here:
>> >> >>>
>> >> >>> mas->inparams = g_obex_apparam_decode(buffer, size);
>> >> >>> if (mas->inparams == NULL) {
>> >> >>>     DBG("Error when parsing parameters!");
>> >> >>>     return -EBADR;
>> >> >>> }
>> >> >>>
>> >> >>> I suspect the problem is that there is no application parameters
>> >> >>> set which is fine since all the parameters of GetFolderListing
>> >> >>> are optional, please try with the attached patch I will send it
>> >> >>> shortly as a
>> >> proper patch to the mailing list.
>> >> >>>
>> >> >>>
>> >> >>> --
>> >> >>> Luiz Augusto von Dentz
>> >> >>
>> >> >>
>> >> >> I applied the patch which was attached in the previous reply.
>> >> >> Still I am
>> >> getting the same error.
>> >> >> I tried printing the "size" inside the get_params function. Its
>> >> >> value is '0' for
>> >> GetFolderListing request.
>> >> >> If size=0, then g_obex_apparam_decode()  function always return
>> >> >> NULL,
>> >> which leads to "Error when parsing parameters!".
>> >> >
>> >> > My bad, the check should be size <= 0 otherwise it will still cause
>> >> > this problem.
>> >>
>> >> Let me know if you can test the patch, I would like to push it asap if it
>> works.
>> >>
>> >>
>> >> --
>> >> Luiz Augusto von Dentz
>> >
>> >
>> > Now I am not getting the BAD_REQUEST error. But when I call the folder-
>> listing, it abruptly ends or terminate.
>> >
>> > The below one -- mas-connect
>> >
>> > obexd[14651]: obexd/plugins/bluetooth.c:profile_new_connection()
>> > device /org/bluez/hci0/dev_00_1B_DC_07_33_4E
>> > obexd[14651]: obexd/src/obex.c:obex_session_start()
>> > obexd[14651]: obexd/src/obex.c:cmd_connect()
>> > obexd[14651]: CONNECT(0x0), (null)(0xffffffff)
>> > obexd[14651]: obexd/src/obex.c:cmd_connect() Selected driver: Message
>> > Access server
>> > obexd[14651]: obexd/plugins/mas.c:mas_connect()
>> > obexd[14651]: CONNECT(0x0), (null)(0x0)
>> >
>> > The below one -- mas-setpath
>> >
>> > obexd[14651]: obexd/src/obex.c:cmd_setpath()
>> > obexd[14651]: SETPATH(0x5), (null)(0xffffffff)
>> > obexd[14651]: obexd/src/obex.c:parse_name() NAME:
>> > obexd[14651]: obexd/plugins/mas.c:mas_setpath() SETPATH: name
>> nonhdr
>> > 0x20
>> > obexd[14651]: SETPATH(0x5), SUCCESS(0x20)
>> >
>> > The below one -- mas-getFolderListing
>> >
>> > obexd[14651]: obexd/src/obex.c:cmd_get() session 0x1ecbd80
>> > obexd[14651]: GET(0x3), (null)(0xffffffff)
>> > obexd[14651]: obexd/src/obex.c:parse_type() TYPE:
>> > x-obex/folder-listing
>> > obexd[14651]: obexd/plugins/mas.c:mas_get() GET: name (null) type
>> > x-obex/folder-listing mas 0x1ecbc00
>> > obexd[14651]: obexd/plugins/mas.c:folder_listing_open() name = (null)
>> > obexd[14651]: obexd/src/obex.c:driver_get_headers() name=(null)
>> > type=x-obex/folder-listing object=0x1ecbc00
>> > obexd[14651]: obexd/plugins/mas.c:any_get_next_header()
>> > obexd[14651]: get_next_header(): Resource temporarily unavailable (11)
>> > obexd[14651]: obexd/src/obex.c:driver_get_headers() name=(null)
>> > type=x-obex/folder-listing object=0x1ecbc00
>> > obexd[14651]: obexd/plugins/mas.c:any_get_next_header()
>> > gowtham.ab@gowtham-ab:~/latest_bluez/bluez$
>>
>> I think I know what is the problem, outparams can also be NULL if no
>> application parameter has to be added to the response causing
>> g_obex_apparam_encode to crash, check with attached patch. Btw next
>> time please send the backtrace either using gdb or valgrind is highly
>> recommended.
>>
>> --
>> Luiz Augusto von Dentz
>
> Sorry, I didn’t see any patch attached.

There it go.

-- 
Luiz Augusto von Dentz
From 62cdfef597ef6bf142623e2cd1a743494102323d Mon Sep 17 00:00:00 2001
From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx>
Date: Wed, 3 Sep 2014 14:58:37 +0300
Subject: [PATCH BlueZ] obexd/mas: Fix crash when outparams is NULL

outparams can be NULL meaning no application parameters should be added
to the response.
---
 obexd/plugins/mas.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/obexd/plugins/mas.c b/obexd/plugins/mas.c
index 24b26ae..fb97fe3 100644
--- a/obexd/plugins/mas.c
+++ b/obexd/plugins/mas.c
@@ -676,6 +676,9 @@ static ssize_t any_get_next_header(void *object, void *buf, size_t mtu,
 		return 0;
 
 	mas->ap_sent = TRUE;
+	if (!mas->outparams)
+		return 0;
+
 	return g_obex_apparam_encode(mas->outparams, buf, mtu);
 }
 
-- 
1.9.3


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux