On Thu, Jan 8, 2015 at 11:27 PM, Patrik Flykt
<patrik.fl...@linux.intel.com> wrote:
> On Thu, 2015-01-08 at 12:11 -0800, Juha Kuikka wrote:
>> Hi,
>>
>> I am running into a problem where libdbus asserts
>> dbus_message_get_type() with message = 0.
>>
>> It seems that when service disconnects due to a new service connecting
>> the connman_agent_cancel() gets called to clear all pending requests
>> to the agent.
>>
>> This in turn calls agent_finalize_pending(agent, NULL).
>>
>> And this in turn calls the pending->callback (request_browser_reply()
>> in this case), with NULL reply. This gets passed to
>> dbus_message_get_type() and libdbus asserts on it.
>>
>> Stack:
>> #0  0xb6bf5448 in nanosleep () from /lib/libc.so.6
>> #1  0xb6ddbb60 in _dbus_sleep_milliseconds (milliseconds=<optimized out>)
>>     at dbus-sysdeps-unix.c:2814
>> #2  0xb6de16e0 in _dbus_abort () at dbus-sysdeps.c:88
>> #3  0xb6dcf7f8 in _dbus_warn_check_failed (
>>     format=0xb6dee000 "arguments to %s() were incorrect, assertion
>> \"%s\" failed in file %s line %d.\nThis is normally a bug in some
>> application using the D-Bus library.\n") at dbus-internals.c:275
>> #4  0xb6db9504 in dbus_message_get_type (message=0x0) at dbus-message.c:1724
>> #5  0x000443c8 in request_browser_reply ()
>> #6  0x00045c74 in agent_finalize_pending.clone ()
>> #7  0x00046694 in connman_agent_cancel ()
>> #8  0x0003f7a4 in __connman_service_disconnect ()
>> #9  0x00041864 in connect_service ()
>> #10 0x00078b18 in process_message.clone ()
>> #11 0x00079058 in generic_message ()
>> #12 0xb6dc19a8 in _dbus_object_tree_dispatch_and_unlock (tree=0x988f8,
>>     message=<optimized out>, found_object=<optimized out>)
>>     at dbus-object-tree.c:1018
>> #13 0xb6dab0d4 in dbus_connection_dispatch (connection=0xb0598)
>>     at dbus-connection.c:4718
>> #14 0x0007570c in message_dispatch ()
>> #15 0xb6e35edc in g_idle_dispatch () from /usr/lib/libglib-2.0.so.0
>> ---Type <return> to continue, or q <return> to quit---
>> #16 0xb6e39b98 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
>> #17 0xb6e39f10 in g_main_context_iterate.clone ()
>>    from /usr/lib/libglib-2.0.so.0
>> #18 0xb6e3a24c in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
>> #19 0x0002fbd4 in main ()
>
> This has been fixed by commit 94d8d9c63cacf1484b02036935cd976b84b5e896
> in ConnMan 1.27. You are probably using an older version?
>

Ah, yes, thank you. I am on 1.26.

What about all the other places that call dbus_message_get_type() with
possible a null pointer? I take it those are not a problem?

 - Juha
_______________________________________________
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman

Reply via email to