From: sanghyuk Ko Date: Mon, 15 Jul 2013 02:20:49 +0000 (+0900) Subject: [Internal:Prevent Fixed for prevent defect. (5EA) X-Git-Tag: submit/tizen_2.2/20130716.173412~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fcc32c2b5fb1d31b6363b8a3242a98a419b11255;p=framework%2Fsystem%2Foma-ds-agent.git [Internal:Prevent Fixed for prevent defect. (5EA) [Problem] - [Cause] - [Solution] - Fixed for prevent defect. (5EA - CID 64250, 64249, 64222, 64221, 64216) Change-Id: If9630de38f03cfc6143ebc1181a9f024e9233e3d --- diff --git a/src/agent/service-adapter/protocol-binder/oma_ds_protocol_binder.c b/src/agent/service-adapter/protocol-binder/oma_ds_protocol_binder.c index bda3a46..04cc566 100755 --- a/src/agent/service-adapter/protocol-binder/oma_ds_protocol_binder.c +++ b/src/agent/service-adapter/protocol-binder/oma_ds_protocol_binder.c @@ -784,6 +784,11 @@ static sync_agent_pb_error_e _oma_ds_binder_devinf_converter_function(sync_agent if (devInfDataStore->max_mem) { char *str_maxmem = g_strdup_printf("%u", devInfDataStore->max_mem); + if (str_maxmem == NULL) { + err = SYNC_AGENT_PB_RETURN_OUT_OF_MEMORY; + goto error; + } + WBXMLTreeNode *maxmem_node = sync_agent_add_child_text_node(binder, dsmem_node, ELEMENT_MAXMEM, str_maxmem, strlen(str_maxmem)); @@ -798,6 +803,11 @@ static sync_agent_pb_error_e _oma_ds_binder_devinf_converter_function(sync_agent if (devInfDataStore->max_id) { char *str_maxid = g_strdup_printf("%u", devInfDataStore->max_id); + if (str_maxid == NULL) { + err = SYNC_AGENT_PB_RETURN_OUT_OF_MEMORY; + goto error; + } + WBXMLTreeNode *maxid_node = sync_agent_add_child_text_node(binder, dsmem_node, ELEMENT_MAXID, str_maxid, strlen(str_maxid)); @@ -3535,6 +3545,9 @@ static sync_agent_pb_error_e _oma_ds_binder_devinf_reverse_converter_function(sy if (pDevInfProperty != NULL) free(pDevInfProperty); + if (pDevInfPropParam != NULL) + free(pDevInfPropParam); + goto return_part; } _DEBUG_TRACE("ParamName = [%s]", paramname); diff --git a/src/agent/service-adapter/sa_common_interface.c b/src/agent/service-adapter/sa_common_interface.c index c2e2a6a..bc5a6ac 100755 --- a/src/agent/service-adapter/sa_common_interface.c +++ b/src/agent/service-adapter/sa_common_interface.c @@ -1708,8 +1708,10 @@ static sa_error_type_e _process_recv_msg(session_s * session, char *recv_msg, un (*pre)->datastore_info = pReturnDatastore; if (session->remote_devinf != NULL) { - if (session->remote_devinf->dev_id != NULL) - (*pre)->dev_id = strdup(session->remote_devinf->dev_id); + if (session->remote_devinf->dev_id != NULL) { + if ((*pre) != NULL) + (*pre)->dev_id = strdup(session->remote_devinf->dev_id); + } } } else { sync_return_obj_s **syncReturn = (sync_return_obj_s **) sync_return_obj; diff --git a/src/agent/service-engine/se_sync.c b/src/agent/service-engine/se_sync.c index 6d91d24..5fb6029 100755 --- a/src/agent/service-engine/se_sync.c +++ b/src/agent/service-engine/se_sync.c @@ -1837,13 +1837,21 @@ static se_error_type_e __execute_sync_change(int account_id, alert_type_e server da_err = sync_agent_get_folder_id_list(&query, &f_id_list); if (da_err != SYNC_AGENT_DA_SUCCESS) { - _DEBUG_ERROR("sync_agent_get_folder_id_list_inferface() failed !!"); + _DEBUG_ERROR("sync_agent_get_folder_id_list_inferface() failed !!, da_err : [%d]", da_err); goto error; } + _DEBUG_INFO("id count : [%d]", g_list_length(f_id_list)); + int i = 0; + for (i = 0; i < g_list_length(f_id_list); i++) { + char *data = (char *)g_list_nth_data(f_id_list, i); + _DEBUG_INFO("data[%d]: [%s]", i, data); + } + if (g_list_length(f_id_list) > 0) { GList *iter = g_list_nth(f_id_list, 0); folderId = (char *)(iter->data); + _DEBUG_INFO("iter data [%s]", iter->data); } else { _DEBUG_ERROR("failed to get folderId"); err = SE_INTERNAL_DA_ERROR; @@ -1870,11 +1878,11 @@ static se_error_type_e __execute_sync_change(int account_id, alert_type_e server for (changedIter = pSyncReturnChangedDatastore->change_item; changedIter != NULL; changedIter = g_list_next(changedIter)) { changedItem = (changedIter->data); - _DEBUG_VERBOSE("changedItem->changeType : %d", changedItem->change_type); - _DEBUG_VERBOSE("changedItem->luid : %s", changedItem->luid); - _DEBUG_VERBOSE("changedItem->content_type : %s", changedItem->content_type); - _DEBUG_VERBOSE("changedItem->indexOfDatastore : %d", changedItem->index_of_datastore); - _DEBUG_VERBOSE("changedItem->data : %s", changedItem->data); + _DEBUG_INFO("changedItem->luid : %s", changedItem->luid); + _DEBUG_INFO("changedItem->content_type : %s", changedItem->content_type); + _DEBUG_INFO("changedItem->indexOfDatastore : %d", changedItem->index_of_datastore); + _DEBUG_INFO("changedItem->data : %s", changedItem->data); + _DEBUG_INFO("changedItem->changeType : %d", changedItem->change_type); add_receive_count(datastoreinfo_per_content_type[datastoreContentType]->server_sync_result, 1); @@ -1941,6 +1949,11 @@ static se_error_type_e __execute_sync_change(int account_id, alert_type_e server _DEBUG_ERROR("failed in sync_agent_generate_item_luid"); da_err = SYNC_AGENT_DA_ERRORS; success = false; + + if (id_list != NULL) { + free(id_list); + id_list = NULL; + } } else { int i = 0; GList *iter = NULL; @@ -1965,10 +1978,14 @@ static se_error_type_e __execute_sync_change(int account_id, alert_type_e server fw_item->access_name = g_strdup("DACI_ChangeLog"); da_err = sync_agent_add_item(fw_item, &(id_list[i]), true); - if (fw_item != NULL) + if (fw_item != NULL) { sync_agent_free_item(fw_item); + fw_item = NULL; + } free(fw_item_id_list[i]); + fw_item_id_list[i] = NULL; free(id_list[i]); + id_list[i] = NULL; i++; @@ -1981,9 +1998,11 @@ static se_error_type_e __execute_sync_change(int account_id, alert_type_e server } if (fw_item_id_list != NULL) { free(fw_item_id_list); + fw_item_id_list = NULL; } if (id_list != NULL) { free(id_list); + id_list = NULL; } } } @@ -1997,9 +2016,12 @@ static se_error_type_e __execute_sync_change(int account_id, alert_type_e server da_fail = true; } sync_agent_free_folder_list(folder_list); + folder_list = NULL; - if (service_id != NULL) + if (service_id != NULL) { free(service_id); + service_id = NULL; + } } else if (da_err == SYNC_AGENT_DA_ERR_NOT_SUPPORTED || da_err == SYNC_AGENT_DA_ERR_INVALID_CONTENT || da_err == SYNC_AGENT_DA_ERR_ALREADY_EXIST) { /*just return error to server */ @@ -2010,11 +2032,15 @@ static se_error_type_e __execute_sync_change(int account_id, alert_type_e server da_fail = true; } - if (service_item != NULL) + if (service_item != NULL) { sync_agent_free_service_item(service_item); + service_item = NULL; + } - if (fw_id != NULL) + if (fw_id != NULL) { free(fw_id); + fw_id = NULL; + } } else returnResult = COMMAND_RESULT_COMMAND_FAIL; @@ -2092,8 +2118,10 @@ static se_error_type_e __execute_sync_change(int account_id, alert_type_e server da_fail = true; } - if (service_item != NULL) + if (service_item != NULL) { sync_agent_free_service_item(service_item); + service_item = NULL; + } } else returnResult = COMMAND_RESULT_COMMAND_FAIL; @@ -2152,6 +2180,7 @@ static se_error_type_e __execute_sync_change(int account_id, alert_type_e server da_fail = true; } sync_agent_free_item_list(item_list); + item_list = NULL; break; } default: @@ -2234,16 +2263,23 @@ static se_error_type_e __execute_sync_change(int account_id, alert_type_e server free(tempServerSyncResult); tempServerSyncResult = NULL; } + sync_agent_free_folder_id_list(f_id_list); + f_id_list = NULL; } error: + sync_agent_free_folder_id_list(f_id_list); + f_id_list = NULL; - if (tempServerSyncResult != NULL) + if (tempServerSyncResult != NULL) { free(tempServerSyncResult); + tempServerSyncResult = NULL; + } /* for prevent */ free_sending_status(sendingStatus); + sendingStatus = NULL; _INNER_FUNC_EXIT; return err;