system_server crash at power off the phone. See below back trace.
Program terminated with signal 11, Segmentation fault.
#0 0xb76a898f in _unregister_noti (key=0xb451e1f8, value=0xb450a6b0,
user_data=0x0) at
/usr/src/debug/libslp-tapi-0.6.69/src/tapi_common.c:1290
1290
g_dbus_connection_signal_unsubscribe(handle->dbus_connection,
evt_cb_data->evt_id);
(gdb) bt
#0 0xb76a898f in _unregister_noti (key=0xb451e1f8, value=0xb450a6b0,
user_data=0x0) at
/usr/src/debug/libslp-tapi-0.6.69/src/tapi_common.c:1290
#1 0xb74518a9 in g_hash_table_foreach_remove_or_steal ()
from /usr/lib/libglib-2.0.so.0
#2 0xb76ad3c5 in tel_deinit (handle=0x8d14e48)
at /usr/src/debug/libslp-tapi-0.6.69/src/tapi_common.c:1304
#3 0x08050ff4 in powerdown_ap_by_force (data=0x0)
at /usr/src/debug/system-server-0.1.65/ss_predefine.c:324
#4 0xb779c38a in _ecore_timer_expired_call () from
/usr/lib/libecore.so.1
#5 0xb779c557 in _ecore_timer_expired_timers_call ()
from /usr/lib/libecore.so.1
#6 0xb7798d13 in _ecore_main_loop_iterate_internal ()
from /usr/lib/libecore.so.1
#7 0xb779941f in ecore_main_loop_begin () from /usr/lib/libecore.so.1
#8 0x0804bd45 in system_main (argc=1, argv=0xbfb6f154)
at /usr/src/debug/system-server-0.1.65/ss_main.c:102
#9 0x0804bda1 in elm_main (argc=1, argv=0xbfb6f154)
at /usr/src/debug/system-server-0.1.65/ss_main.c:112
#10 0x0804bdfe in main (argc=1, argv=0xbfb6f154)
at /usr/src/debug/system-server-0.1.65/ss_main.c:119
Change-Id: If840b4ae2668deb6f585d85829bdb313ef65a18c
Signed-off-by: Chengwei Yang <chengwei.yang@intel.com>
Name: libslp-tapi
Summary: Telephony dbus client library
Version: 0.6.69
-Release: 1
+Release: 2
Group: System/Libraries
License: Apache-2.0
Source0: libslp-tapi-%{version}.tar.gz
struct tapi_evt_cb *evt_cb_data = value;
TapiHandle *handle = user_data;
+ if (handle == NULL)
+ return TRUE;
+
g_dbus_connection_signal_unsubscribe(handle->dbus_connection, evt_cb_data->evt_id);
return TRUE;
g_free(handle->path);
dbg("Remove all signals");
- g_hash_table_foreach_remove(handle->evt_list, _unregister_noti, NULL);
+ g_hash_table_foreach_remove(handle->evt_list, _unregister_noti, handle);
g_hash_table_destroy(handle->evt_list);
g_cancellable_cancel(handle->ca);