Fix gdbus abort issue
authorSeonah Moon <seonah1.moon@samsung.com>
Thu, 2 Apr 2020 05:33:43 +0000 (14:33 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Thu, 2 Apr 2020 05:33:43 +0000 (14:33 +0900)
src/wifi-aware-gdbus.c
src/wifi-aware-private.c

index 78e5c31..38bda3b 100644 (file)
@@ -93,6 +93,10 @@ guint wifi_aware_gdbus_register_signal(wifi_aware_signal_e signal,
 void wifi_aware_gdbus_deregister_signal(guint signal_id)
 {
        __WIFI_AWARE_FUNC_ENTER__;
+       if (!gdbus_data.connection) {
+               WIFI_AWARE_LOGE("gdbus_data.connection is NULL");
+               return;
+       }
        g_dbus_connection_signal_unsubscribe(gdbus_data.connection, signal_id);
        __WIFI_AWARE_FUNC_EXIT__;
 }
index 0b47c54..830bab9 100644 (file)
@@ -544,6 +544,36 @@ int _wifi_aware_disable_request()
        return ret;
 }
 
+static void _wifi_aware_session_handle_init(wifi_aware_session_s *session_handle)
+{
+       session_handle->pub_sub_id = 0;
+       session_handle->session_type = WIFI_AWARE_SESSION_PUBLISH;
+    session_handle->publish_config = NULL;
+    session_handle->subscribe_config = NULL;
+       session_handle->is_requested = false;
+
+       session_handle->published_cb = NULL;
+       session_handle->published_cb_data = NULL;
+
+       session_handle->subscribed_cb = NULL;
+       session_handle->subscribed_cb_data = NULL;
+
+       session_handle->discovered_cb = NULL;
+       session_handle->discovered_cb_data = NULL;
+       session_handle->discovered_signal_id = 0;
+
+       session_handle->send_cb = NULL;
+       session_handle->send_cb_data = NULL;
+
+       session_handle->received_cb = NULL;
+       session_handle->received_cb_data = NULL;
+       session_handle->received_signal_id = 0;
+
+       session_handle->terminated_cb = NULL;
+       session_handle->terminated_cb_data = NULL;
+       session_handle->terminated_signal_id = 0;
+}
+
 int _wifi_aware_session_handle_create(wifi_aware_session_type_e session_type,
                wifi_aware_session_h *session_handle)
 {
@@ -554,6 +584,8 @@ int _wifi_aware_session_handle_create(wifi_aware_session_type_e session_type,
                (wifi_aware_session_s *)g_try_malloc0(sizeof(wifi_aware_session_s));
        RET_VAL_IF(session == NULL, WIFI_AWARE_ERROR_OUT_OF_MEMORY, "Out of memory");
 
+       _wifi_aware_session_handle_init(session);
+
        *session_handle = (wifi_aware_session_h)session;
        session->session_type = session_type;