Fix segmentation fault error when DBus errors happen
authorsaerome kim <saerome.kim@samsung.com>
Wed, 8 Feb 2017 05:27:41 +0000 (14:27 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Thu, 11 May 2017 09:07:20 +0000 (18:07 +0900)
Change-Id: Iaac27c27dd6f78c8ead6571a75b98b092b6da208
Signed-off-by: saerome kim <saerome.kim@samsung.com>
lib/zbl-dbus.c

index 6ea1fd403e06702dbfb489e129f2bccddbee8005..d76a776cc97c7c723ca6f9849d52ebf3567320d0 100644 (file)
@@ -3386,7 +3386,6 @@ int zbl_coex_start(unsigned char channel)
                G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
 
        if (!variant) {
-
                ERR("Failed to get 'coex_start' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -3462,12 +3461,6 @@ int zbl_form_network(zigbee_h handle, zb_form_network_cb cb, void *user_data)
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'form_network' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -3518,12 +3511,6 @@ int zbl_disable_network(zigbee_h handle, zb_disable_network_cb cb, void *user_da
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'leave_network' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -3571,7 +3558,6 @@ int zbl_leave_device(ieee_addr addr64, bool remove_children, bool rejoin)
                G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
 
        if (!variant) {
-
                ERR("Failed to get 'leave_request' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -3664,12 +3650,6 @@ int zbl_nwk_addr_req(zigbee_h handle, ieee_addr addr64, unsigned char request_ty
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'nwk_addr_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -3722,12 +3702,6 @@ int zbl_ieee_addr_req(zigbee_h handle, nwk_addr addr16, zb_zdo_addr_rsp cb,
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'ieee_addr_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -3780,12 +3754,6 @@ int zbl_active_ep(zigbee_h handle, nwk_addr addr16, zb_zdo_active_ep_rsp cb,
                g_variant_new("(q)", addr16), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'active_ep_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -3838,12 +3806,6 @@ int zbl_simple_desc_req(zigbee_h handle, nwk_addr addr16, unsigned char ep,
                g_variant_new("(qy)", addr16, ep), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'simple_desc_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -3927,12 +3889,6 @@ int zbl_match_desc_req(zigbee_h handle, nwk_addr addr16,
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'matched_descriptor_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -3984,12 +3940,6 @@ int zbl_node_desc_req(nwk_addr addr16, zb_zdo_node_desc_rsp cb, void *user_data)
                g_variant_new("(q)", addr16), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'node_desc_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -4039,12 +3989,6 @@ int zbl_power_desc_req(nwk_addr addr16, zb_zdo_power_desc_rsp cb,        void *user_dat
                g_variant_new("(q)", addr16), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'power_desc_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -4094,12 +4038,6 @@ int zbl_complex_desc_req(nwk_addr addr16, zb_zdo_complex_desc_rsp cb, void *user
                g_variant_new("(q)", addr16), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'complex_desc_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -4149,12 +4087,6 @@ int zbl_user_desc_req(nwk_addr addr16, zb_zdo_user_desc_rsp cb, void *user_data)
                g_variant_new("(q)", addr16), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'user_desc_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -4223,12 +4155,6 @@ int zbl_user_desc_set(zigbee_h handle, nwk_addr addr16, unsigned char len,
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'user_desc_set_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -4271,7 +4197,6 @@ int zbl_device_annce(zigbee_h handle, nwk_addr addr16, ieee_addr addr64,
                G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
 
        if (!variant) {
-
                ERR("Failed to get 'device_announce' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -4349,12 +4274,6 @@ int zbl_bind_req(nwk_addr dst_addr16, ieee_addr src_addr64,
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'bind_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -4431,12 +4350,6 @@ int zbl_unbind_req(nwk_addr dst_addr16,
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'unbind_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -4491,12 +4404,6 @@ int zbl_mgmt_nwk_disc_req(nwk_addr addr16, unsigned int scan_channels,
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'nwk_disc_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -4579,12 +4486,6 @@ int zbl_mgmt_lqi_req(nwk_addr addr16, unsigned char start_idx,
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'mgmt_lqi_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -4638,12 +4539,6 @@ int zbl_mgmt_rtg_req(nwk_addr addr16, unsigned char start_idx,
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'mgmt_rtg_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -4697,12 +4592,6 @@ int zbl_mgmt_bind_req(nwk_addr addr16, unsigned char start_idx,
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'mgmt_bind_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -4769,12 +4658,6 @@ int zbl_mgmt_leave_device(ieee_addr addr64, unsigned char remove_children,
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'leave_request' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -4826,12 +4709,6 @@ int zbl_mgmt_permit_joining_req(nwk_addr addr16, unsigned char duration,
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'mgmt_permit_join_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -4897,12 +4774,6 @@ int zbl_aps_send(nwk_addr addr16, unsigned char aps_frame_ctl, unsigned char src
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'aps_send' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -4967,12 +4838,6 @@ int zbl_zcl_send(nwk_addr addr16, unsigned char src_ep, unsigned char dst_ep,
                cmd, payload_len, payload_variant), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'zcl_send' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -5035,12 +4900,6 @@ int zbl_send_to_local(unsigned short length, unsigned char *data,
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'send_to_local' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -5132,15 +4991,6 @@ int zbl_read_attr_req(zigbee_h handle, unsigned short addr16, unsigned char dest
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
-               free(global_req);
-#endif
-               free(container);
-
                ERR("Failed to get 'read_attributes_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -5320,15 +5170,6 @@ int zbl_write_attr_req(zigbee_h handle, nwk_addr addr16, unsigned char src_ep, u
        free(writeAttribute);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
-               free(global_req);
-#endif
-               free(container);
-
                ERR("Failed to get 'write_attributes_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -5509,15 +5350,6 @@ int zbl_wattr_undivided_req(zigbee_h handle, nwk_addr addr16, unsigned char src_
        free(writeAttribute);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
-               free(global_req);
-#endif
-               free(container);
-
                ERR("Failed to get 'write_attributes_undivided_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -5637,7 +5469,6 @@ int zbl_wattr_req_no_rsp(zigbee_h handle, nwk_addr addr16, unsigned char src_ep,
        free(writeAttribute);
 
        if (!variant) {
-
                ERR("Failed to get 'write_attributes_no_rep' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -5760,14 +5591,6 @@ int zbl_configure_reporting(zigbee_h handle, nwk_addr addr16, unsigned char src_
                zcl_frame_ctl, src_ep, dst_ep), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
-               free(global_req);
-#endif
-
                ERR("Failed to get 'configure_reporting_req' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -5898,15 +5721,6 @@ int zbl_read_configure_reporting(zigbee_h handle, nwk_addr addr16, unsigned char
        free(read_attributes);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
-               free(global_req);
-#endif
-               free(container);
-
                ERR("Failed to get 'read_configure_reporting' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -5987,15 +5801,6 @@ int zbl_discover_attr_req(zigbee_h handle, unsigned short addr16, unsigned char
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
-               free(global_req);
-#endif
-               free(container);
-
                ERR("Failed to get 'discover_attributes' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -6074,15 +5879,6 @@ int zbl_discover_cmds_gen(zigbee_h handle, nwk_addr addr16, unsigned char src_ep
                start_command_id, max_command_ids), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
-               free(global_req);
-#endif
-               free(container);
-
                ERR("Failed to get 'discover_commands_received' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -6161,15 +5957,6 @@ int zbl_discover_cmds_recv(zigbee_h handle, nwk_addr addr16, unsigned char src_e
                start_command_id, max_command_ids), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
-               free(global_req);
-#endif
-               free(container);
-
                ERR("Failed to get 'discover_commands_received' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -6249,15 +6036,6 @@ int zbl_discover_attr_ext(zigbee_h handle, nwk_addr addr16, unsigned char src_ep
                max_attribute_ids), G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-#ifdef ZB_FEATURE_GLOBAL_RSP_SYNC
-               free(global_req);
-#endif
-               free(container);
-
                ERR("Failed to get 'discover_attributes_extended' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -6909,11 +6687,6 @@ int zbl_view_group(nwk_addr addr16, unsigned char ep, unsigned short group_id,
                G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
 
        if (!variant) {
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'view_group' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -6979,11 +6752,6 @@ int zbl_group_get_group_membership(nwk_addr addr16, unsigned char ep,
                G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
 
        if (!variant) {
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'get_group_membership' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -7035,11 +6803,6 @@ int zbl_remove_group(nwk_addr addr16, unsigned char ep, unsigned short group_id,
                addr16, ep, group_id), G_DBUS_CALL_FLAGS_NONE, -1, NULL, &dbus_err);
 
        if (!variant) {
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'remove_group' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -7467,11 +7230,6 @@ int zbl_pollcontrol_set_long_poll_interval(nwk_addr addr16, unsigned char ep,
                        G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'set_long_poll_interval' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -7525,11 +7283,6 @@ int zbl_pollcontrol_set_short_poll_interval(nwk_addr addr16, unsigned char ep,
                        G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'set_short_poll_interval' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -7610,11 +7363,6 @@ int zbl_add_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id,
                to, NULL, &dbus_err);
 
        if (!variant) {
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'add_scene' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -7667,11 +7415,6 @@ int zbl_view_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id,
                to, NULL, &dbus_err);
 
        if (!variant) {
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'view_scene' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -7725,11 +7468,6 @@ int zbl_remove_scene(nwk_addr addr16, unsigned char ep,
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'remove_scene' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -7783,11 +7521,6 @@ int zbl_remove_all_scene(nwk_addr addr16, unsigned char ep,
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'remove_all_scene' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -7840,11 +7573,6 @@ int zbl_store_scene(nwk_addr addr16, unsigned char ep, unsigned short group_id,
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get 'store_scene' [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;
@@ -7925,11 +7653,6 @@ int zbl_get_scene_membership(nwk_addr addr16, unsigned char ep,
                G_DBUS_CALL_FLAGS_NONE, to, NULL, &dbus_err);
 
        if (!variant) {
-               g_dbus_connection_signal_unsubscribe(gdbus_conn, sub_id);
-               g_source_remove(container->tid);
-               container->tid = 0;
-               free(container);
-
                ERR("Failed to get get_scene_membership [%s]", dbus_err->message);
                g_error_free(dbus_err);
                return ZIGBEE_ERROR_IO_ERROR;