RE: MAP server crash during connection

Amisha Jain (QUIC)
2024-06-07T07:00:31Z

Hi,
To resolve the MAP crash issue, We have added the below fix -

diff --git a/obexd/src/obex.c b/obexd/src/obex.c
index 3a68fd6..7c95075 100644
--- a/obexd/src/obex.c
+++ b/obexd/src/obex.c
@@ -716,7 +716,7 @@ int obex_put_stream_start(struct obex_session *os, const char *filename)
return err;
}

- if (os->size != OBJECT_SIZE_DELETE && os->size != OBJECT_SIZE_UNKNOWN)
+ if (os->size != OBJECT_SIZE_DELETE && os->size != OBJECT_SIZE_UNKNOWN && strcmp(os->service->name, "Message Access server") != 0)
manager_emit_transfer_property(os->service_data, "Size");

os->path = g_strdup(filename);
--

Please review the above fix and let us know if we can go ahead with this change.

Thanks,
Amisha

> -----Original Message-----
> From: Amisha Jain (QUIC)
> Sent: Tuesday, June 4, 2024 11:43 AM
> To: 'linux-bluetooth@vger.kernel.org' <linux-bluetooth@vger.kernel.org>
> Subject: RE: MAP server crash during connection
>
> Hi,
> Please help with the below issue.
>
> > -----Original Message-----
> > From: Amisha Jain (QUIC)
> > Sent: Friday, May 31, 2024 12:34 PM
> > To: 'linux-bluetooth@vger.kernel.org'
> > <linux-bluetooth@vger.kernel.org>
> > Subject: MAP server crash during connection
> >
> > Hi bluez team,
> > I have been trying to verify MAP Server obex profile on bluez 5.65.
> > While trying connection, I have noticed the crash on the server side
> > (connection initiated from client side) and hence connection is failing.
> > Please find the backtrace of the crash -
> >
> >   assertion failed "i == len" file "../../dbus-1.14.8/dbus/dbus-object-tree.c"
> > line 1321 function _dbus_decompose_path
> >   /usr/lib/libdbus-1.so.3(_dbus_print_backtrace+0x28) [0xfffff7f4cc9c]
> >   /usr/lib/libdbus-1.so.3(_dbus_abort+0x14) [0xfffff7f4fe3c]
> >   /usr/lib/libdbus-1.so.3(+0x4a9cc) [0xfffff7f3a9cc]
> >   /usr/lib/libdbus-1.so.3(+0x36c5c) [0xfffff7f26c5c]
> >   /usr/lib/libdbus-1.so.3(dbus_connection_get_object_path_data+0xc4)
> > [0xfffff7f0f818]
> >   /usr/libexec/bluetooth/obexd(g_dbus_emit_property_changed_full+0x30)
> > [0x450dc4]
> >   /usr/libexec/bluetooth/obexd(g_dbus_emit_property_changed+0x14)
> > [0x450ec0]
> >   /usr/libexec/bluetooth/obexd(manager_emit_transfer_property+0x34)
> > [0x429408]
> >   /usr/libexec/bluetooth/obexd(obex_put_stream_start+0xc8) [0x42b314]
> >   /usr/libexec/bluetooth/obexd() [0x425f58]
> >   /usr/libexec/bluetooth/obexd() [0x42adcc]
> >   /usr/libexec/bluetooth/obexd() [0x4171dc]
> >   /usr/libexec/bluetooth/obexd() [0x418078]
> >   /usr/lib/libglib-2.0.so.0(+0xb20cc) [0xfffff7e420cc]
> >   /usr/lib/libglib-2.0.so.0(+0x54a30) [0xfffff7de4a30]
> >   /usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x44)
> > [0xfffff7de850c]
> >   /usr/lib/libglib-2.0.so.0(+0x5868c) [0xfffff7de868c]
> >   /usr/lib/libglib-2.0.so.0(g_main_loop_run+0x1ac) [0xfffff7de8b08]
> >   /usr/libexec/bluetooth/obexd(main+0x128) [0x427d6c]
> >   /lib/libc.so.6(+0x2affc) [0xfffff7c0affc]
> >   /lib/libc.so.6(__libc_start_main+0x90) [0xfffff7c0b0c4]
> >   /usr/libexec/bluetooth/obexd(_start+0x30) [0x4101b0]
> >
> >   Program received signal SIGABRT, Aborted.
> >
> >  __pthread_kill_implementation (threadid=<optimized out>,
> > signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:4
> >
> > Please help support the issue.
> >
> > Thanks,
> > Amisha