2020-04-01 11:59:54

by Anupam Roy

[permalink] [raw]
Subject: [PATCH BlueZ] tools/mesh-cfgclient: Fix SIGSEGV

This patch addresses the following crash:

[mesh-cfgclient]#
Program received signal SIGSEGV, Segmentation fault.
strlen () at ../sysdeps/x86_64/strlen.S:106
106 ../sysdeps/x86_64/strlen.S: No such file or directory.
(gdb) bt
0 strlen () at ../sysdeps/x86_64/strlen.S:106
1 0x00000000004235d6 in l_dbus_interface_method (interface=interface@entry=0x66d900, name=name@entry=0x42bbad "ScanResult", flags=flags@entry=0,
cb=cb@entry=0x404940 <scan_result_call>, return_sig=return_sig@entry=0x42f7ca "", param_sig=param_sig@entry=0x42bba4 "naya{sv}") at ell/dbus-service.c:320
2 0x000000000040433d in setup_prov_iface (iface=0x66d900) at tools/mesh-cfgclient.c:1695
3 0x00000000004249b1 in _dbus_object_tree_register_interface (tree=0x65b770, interface=interface@entry=0x42baa8 "org.bluez.mesh.Provisioner1",
setup_func=setup_func@entry=0x404310 <setup_prov_iface>, destroy=destroy@entry=0x0, old_style_properties=old_style_properties@entry=false)
at ell/dbus-service.c:1385
4 0x000000000041cffa in l_dbus_register_interface (dbus=<optimized out>, interface=interface@entry=0x42baa8 "org.bluez.mesh.Provisioner1",
setup_func=setup_func@entry=0x404310 <setup_prov_iface>, destroy=destroy@entry=0x0, handle_old_style_properties=handle_old_style_properties@entry=false)
at ell/dbus.c:1455
5 0x0000000000403f4e in register_app () at tools/mesh-cfgclient.c:1770
6 client_ready (client=<optimized out>, user_data=<optimized out>) at tools/mesh-cfgclient.c:1815
7 0x0000000000425ed2 in get_managed_objects_reply (message=<optimized out>, user_data=0x66ab50) at ell/dbus-client.c:572
8 0x000000000041bc25 in handle_error (message=0x66c0c0, dbus=<optimized out>) at ell/dbus.c:236
9 0x000000000041cdcc in message_read_handler (io=<optimized out>, user_data=0x6653f0) at ell/dbus.c:276
10 0x0000000000418763 in io_callback (fd=<optimized out>, events=1, user_data=0x6664e0) at ell/io.c:126
11 0x000000000041957a in l_main_iterate (timeout=<optimized out>) at ell/main.c:473
12 0x000000000041964c in l_main_run () at ell/main.c:520
13 0x000000000041986b in l_main_run_with_signal (callback=callback@entry=0x4153a0 <l_sig_func>, user_data=user_data@entry=0x0) at ell/main.c:642
14 0x0000000000415471 in mainloop_run_with_signal (func=func@entry=0x4139a0 <signal_callback>, user_data=user_data@entry=0x0) at src/shared/mainloop-ell.c:87
15 0x0000000000414b6f in bt_shell_run () at src/shared/shell.c:1177
16 0x00000000004039ed in main (argc=<optimized out>, argv=<optimized out>) at tools/mesh-cfgclient.c:1999
---
tools/mesh-cfgclient.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/mesh-cfgclient.c b/tools/mesh-cfgclient.c
index d1c6731..57a2607 100644
--- a/tools/mesh-cfgclient.c
+++ b/tools/mesh-cfgclient.c
@@ -1693,7 +1693,7 @@ static struct l_dbus_message *add_node_fail_call(struct l_dbus *dbus,
static void setup_prov_iface(struct l_dbus_interface *iface)
{
l_dbus_interface_method(iface, "ScanResult", 0, scan_result_call, "",
- "naya{sv}", "rssi", "data");
+ "naya{sv}", "rssi", "data", "options");

l_dbus_interface_method(iface, "RequestProvData", 0, req_prov_call,
"qq", "y", "net_index", "unicast", "count");
--
2.7.4


2020-04-01 16:50:28

by Gix, Brian

[permalink] [raw]
Subject: Re: [PATCH BlueZ] tools/mesh-cfgclient: Fix SIGSEGV

Applied
On Wed, 2020-04-01 at 16:36 +0530, Anupam Roy wrote:
> This patch addresses the following crash:
>
> [mesh-cfgclient]#
> Program received signal SIGSEGV, Segmentation fault.
> strlen () at ../sysdeps/x86_64/strlen.S:106
> 106 ../sysdeps/x86_64/strlen.S: No such file or directory.
> (gdb) bt
> 0 strlen () at ../sysdeps/x86_64/strlen.S:106
> 1 0x00000000004235d6 in l_dbus_interface_method (interface=interface@entry=0x66d900, name=name@entry=0x42bba
> d "ScanResult", flags=flags@entry=0,
> cb=cb@entry=0x404940 <scan_result_call>, return_sig=return_sig@entry=0x42f7ca "",
> param_sig=param_sig@entry=0x42bba4 "naya{sv}") at ell/dbus-service.c:320
> 2 0x000000000040433d in setup_prov_iface (iface=0x66d900) at tools/mesh-cfgclient.c:1695
> 3 0x00000000004249b1 in _dbus_object_tree_register_interface (tree=0x65b770, interface=interface@entry=0x42b
> aa8 "org.bluez.mesh.Provisioner1",
> setup_func=setup_func@entry=0x404310 <setup_prov_iface>, destroy=destroy@entry=0x0,
> old_style_properties=old_style_properties@entry=false)
> at ell/dbus-service.c:1385
> 4 0x000000000041cffa in l_dbus_register_interface (dbus=<optimized out>, interface=interface@entry=0x42baa8
> "org.bluez.mesh.Provisioner1",
> setup_func=setup_func@entry=0x404310 <setup_prov_iface>, destroy=destroy@entry=0x0,
> handle_old_style_properties=handle_old_style_properties@entry=false)
> at ell/dbus.c:1455
> 5 0x0000000000403f4e in register_app () at tools/mesh-cfgclient.c:1770
> 6 client_ready (client=<optimized out>, user_data=<optimized out>) at tools/mesh-cfgclient.c:1815
> 7 0x0000000000425ed2 in get_managed_objects_reply (message=<optimized out>, user_data=0x66ab50) at ell/dbus-
> client.c:572
> 8 0x000000000041bc25 in handle_error (message=0x66c0c0, dbus=<optimized out>) at ell/dbus.c:236
> 9 0x000000000041cdcc in message_read_handler (io=<optimized out>, user_data=0x6653f0) at ell/dbus.c:276
> 10 0x0000000000418763 in io_callback (fd=<optimized out>, events=1, user_data=0x6664e0) at ell/io.c:126
> 11 0x000000000041957a in l_main_iterate (timeout=<optimized out>) at ell/main.c:473
> 12 0x000000000041964c in l_main_run () at ell/main.c:520
> 13 0x000000000041986b in l_main_run_with_signal (callback=callback@entry=0x4153a0 <l_sig_func>,
> user_data=user_data@entry=0x0) at ell/main.c:642
> 14 0x0000000000415471 in mainloop_run_with_signal (func=func@entry=0x4139a0 <signal_callback>,
> user_data=user_data@entry=0x0) at src/shared/mainloop-ell.c:87
> 15 0x0000000000414b6f in bt_shell_run () at src/shared/shell.c:1177
> 16 0x00000000004039ed in main (argc=<optimized out>, argv=<optimized out>) at tools/mesh-cfgclient.c:1999
> ---
> tools/mesh-cfgclient.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/mesh-cfgclient.c b/tools/mesh-cfgclient.c
> index d1c6731..57a2607 100644
> --- a/tools/mesh-cfgclient.c
> +++ b/tools/mesh-cfgclient.c
> @@ -1693,7 +1693,7 @@ static struct l_dbus_message *add_node_fail_call(struct l_dbus *dbus,
> static void setup_prov_iface(struct l_dbus_interface *iface)
> {
> l_dbus_interface_method(iface, "ScanResult", 0, scan_result_call, "",
> - "naya{sv}", "rssi", "data");
> + "naya{sv}", "rssi", "data", "options");
>
> l_dbus_interface_method(iface, "RequestProvData", 0, req_prov_call,
> "qq", "y", "net_index", "unicast", "count");