Fix memory leak issue 60/114960/1
authorWootak Jung <wootak.jung@samsung.com>
Mon, 13 Feb 2017 00:59:05 +0000 (09:59 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Thu, 16 Feb 2017 02:14:40 +0000 (11:14 +0900)
Change-Id: I8ac85b182eff427388f34d2cef5fdb41bd313069

module/src/callmgr-contact.c
packaging/call-manager.spec
service/src/callmgr-core.c

index dd1a881..4216e85 100644 (file)
@@ -345,9 +345,6 @@ int _callmgr_ct_add_ct_info(const char *phone_number, unsigned int call_id, call
        int person_id = -1;
        contacts_error_e err = CONTACTS_ERROR_NONE;
 
-       contact_info = (callmgr_contact_info_t*)calloc(1, sizeof(callmgr_contact_info_t));
-       CM_RETURN_VAL_IF_FAIL(contact_info, -1);
-
        _callmgr_ct_delete_ct_info(call_id);
 
        err = contacts_connect();
@@ -356,6 +353,9 @@ int _callmgr_ct_add_ct_info(const char *phone_number, unsigned int call_id, call
                return -1;
        }
 
+       contact_info = (callmgr_contact_info_t*)calloc(1, sizeof(callmgr_contact_info_t));
+       CM_RETURN_VAL_IF_FAIL(contact_info, -1);
+
        _callmgr_ct_get_person_id_by_num(phone_number, &person_id);
        if (-1 == person_id) {
                err("no contact saved for this number in db");
index 423da19..c60ee1a 100644 (file)
@@ -1,6 +1,6 @@
 %define major 0
 %define minor 2
-%define patchlevel 5
+%define patchlevel 6
 %define ext_feature 0
 
 Name:           call-manager
index 14e9bfc..33390b9 100644 (file)
@@ -1393,12 +1393,11 @@ static void __callmgr_core_process_telephony_events(cm_telephony_event_type_e ev
        case CM_TELEPHONY_EVENT_SAT_SETUP_CALL:
        {
                int ret = 0;
-               char *number = NULL, *name = NULL;
+               char *number = NULL;
                cm_telephony_sat_setup_call_type_e sat_setup_call_type = CM_TELEPHONY_SAT_SETUP_CALL_RESERVED;
                int call_cnt = 0;
 
                _callmgr_telephony_get_sat_setup_call_number(core_data->telephony_handle, &number);
-               _callmgr_telephony_get_sat_setup_call_name(core_data->telephony_handle, &name);
                _callmgr_telephony_get_sat_setup_call_type(core_data->telephony_handle, &sat_setup_call_type);
                _callmgr_telephony_get_call_count(core_data->telephony_handle, &call_cnt);
 
@@ -1407,7 +1406,7 @@ static void __callmgr_core_process_telephony_events(cm_telephony_event_type_e ev
                        goto SAT_SETUP_CALL_FAIL_EXIT;
                }
 
-               info("setup_call_type(%d), number(%s), name(%s), current call_cnt(%d)", sat_setup_call_type, number, name, call_cnt);
+               info("setup_call_type(%d), number(%s), current call_cnt(%d)", sat_setup_call_type, number, call_cnt);
 
                if (call_cnt > 0) {
                        switch (sat_setup_call_type) {
@@ -1437,6 +1436,7 @@ static void __callmgr_core_process_telephony_events(cm_telephony_event_type_e ev
                                                err("_callmgr_telephony_hold_call[%d] failed.", ret);
                                                goto SAT_SETUP_CALL_FAIL_EXIT;
                                        }
+                                       g_free(number);
                                        return;
                                }
                                break;
@@ -1448,6 +1448,7 @@ static void __callmgr_core_process_telephony_events(cm_telephony_event_type_e ev
                                        err("_callmgr_core_process_end_call[%d] failed.", ret);
                                        goto SAT_SETUP_CALL_FAIL_EXIT;
                                }
+                               g_free(number);
                                return;
                                break;
                        default:
@@ -1479,11 +1480,13 @@ static void __callmgr_core_process_telephony_events(cm_telephony_event_type_e ev
                }
 
                // will send sat response when setup call is succesfull.
+               g_free(number);
                return;
 
 SAT_SETUP_CALL_FAIL_EXIT:
                _callmgr_telephony_send_sat_response(core_data->telephony_handle,
                                CM_TELEPHONY_SAT_EVENT_SETUP_CALL, CM_TELEPHONY_SAT_RESPONSE_ME_UNABLE_TO_PROCESS_COMMAND, CM_TELEPHONY_SIM_UNKNOWN);
+               g_free(number);
                return;
        }
                break;
@@ -2530,6 +2533,8 @@ int _callmgr_core_process_dial(callmgr_core_data_t *core_data, const char *numbe
                CM_SAFE_FREE(extracted_dtmf_num);
                return -1;
        }
+       CM_SAFE_FREE(extracted_call_num);
+       CM_SAFE_FREE(extracted_dtmf_num);
        _callmgr_util_remove_invalid_chars_from_call_number(number, &number_after_removal);
 
        if (is_emergency_call) {