Fix a memory leak issue (CID 27751) 38/154238/1
authorsinikang <sinikang@samsung.com>
Thu, 28 Sep 2017 02:09:50 +0000 (11:09 +0900)
committerShinhui Kang <sinikang@samsung.com>
Tue, 10 Oct 2017 01:25:47 +0000 (01:25 +0000)
Change-Id: I0b2d4a8502fcdf0e759e51ae9cf8309d8432cd27

packaging/tel-plugin-dbus_tapi.spec
src/dtapi_sat_manager.c

index 7f45a74b1c9568df9a76b7d1e179ed17173db01d..a71387951cd414869ea58b83e23f5a268ad9d242 100644 (file)
@@ -1,6 +1,6 @@
 %define major 0
 %define minor 3
-%define patchlevel 87
+%define patchlevel 88
 
 Name:           tel-plugin-dbus_tapi
 Version:        %{major}.%{minor}.%{patchlevel}
index 8ef134bd6ea97cd4c8b6666db96b522c7cbd7d47..911ecccce70364b348bf44ba2050f661f6b1c1ad 100644 (file)
@@ -1885,24 +1885,26 @@ GVariant* sat_manager_open_channel_noti(struct custom_data *ctx, const char *cp_
 
        call_active_list = tcore_call_object_find_by_status(co_call, TCORE_CALL_STATUS_ACTIVE);
        tcore_network_get_access_technology(co_network, &result);
-       if (result < NETWORK_ACT_UMTS && call_active_list) {
-               struct treq_sat_terminal_rsp_data tr;
-               dbg("call is busy in not 3G state atc(%d)", result);
-
-               memset(&tr, 0, sizeof(struct treq_sat_terminal_rsp_data));
-               tr.cmd_number = open_channel_tlv->command_detail.cmd_num;
-               tr.cmd_type = open_channel_tlv->command_detail.cmd_type;
-
-               memcpy((void*)&tr.terminal_rsp_data.open_channel.command_detail, &open_channel_tlv->command_detail, sizeof(struct tel_sat_cmd_detail_info));
-               tr.terminal_rsp_data.open_channel.device_id.src = DEVICE_ID_ME;
-               tr.terminal_rsp_data.open_channel.device_id.dest = DEVICE_ID_SIM;
-               tr.terminal_rsp_data.open_channel.result_type = RESULT_ME_UNABLE_TO_PROCESS_COMMAND;
-               tr.terminal_rsp_data.open_channel.me_problem_type = ME_PROBLEM_ME_BUSY_ON_CALL;
-
-               memcpy((void*)&tr.terminal_rsp_data.open_channel.bearer_desc, &open_channel_tlv->bearer_desc, sizeof(struct tel_sat_bearer_description));
-               sat_manager_send_terminal_response(ctx->comm, plg, &tr);
+       if (call_active_list) {
                g_slist_free(call_active_list);
-               return NULL;
+               if (result < NETWORK_ACT_UMTS) {
+                       struct treq_sat_terminal_rsp_data tr;
+                       dbg("call is busy in not 3G state atc(%d)", result);
+
+                       memset(&tr, 0, sizeof(struct treq_sat_terminal_rsp_data));
+                       tr.cmd_number = open_channel_tlv->command_detail.cmd_num;
+                       tr.cmd_type = open_channel_tlv->command_detail.cmd_type;
+
+                       memcpy((void*)&tr.terminal_rsp_data.open_channel.command_detail, &open_channel_tlv->command_detail, sizeof(struct tel_sat_cmd_detail_info));
+                       tr.terminal_rsp_data.open_channel.device_id.src = DEVICE_ID_ME;
+                       tr.terminal_rsp_data.open_channel.device_id.dest = DEVICE_ID_SIM;
+                       tr.terminal_rsp_data.open_channel.result_type = RESULT_ME_UNABLE_TO_PROCESS_COMMAND;
+                       tr.terminal_rsp_data.open_channel.me_problem_type = ME_PROBLEM_ME_BUSY_ON_CALL;
+
+                       memcpy((void*)&tr.terminal_rsp_data.open_channel.bearer_desc, &open_channel_tlv->bearer_desc, sizeof(struct tel_sat_bearer_description));
+                       sat_manager_send_terminal_response(ctx->comm, plg, &tr);
+                       return NULL;
+               }
        }