* @return @c 0 on success,
* otherwise a negative error value
* @retval #DATA_CONTROL_ERROR_NONE Successful
+ * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
int data_control_bulk_data_add(data_control_bulk_data_h bulk_data, bundle *data);
* @return @c 0 on success,
* otherwise a negative error value
* @retval #DATA_CONTROL_ERROR_NONE Successful
+ * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
* @see data_control_bulk_result_data_get_result_data()
*/
* @param[in] provider The provider handle
* @return @c 0 on success,
* otherwise a negative error value
+ * @retval #DATA_CONTROL_ERROR_NONE Successful
+ * @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
* @see data_control_map_create()
*/
int data_control_map_destroy(data_control_h provider);
* @return @c 0 on success,
* otherwise a negative error value
* @retval #DATA_CONTROL_ERROR_NONE Successful
+ * @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
* @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @see data_control_map_unregister_response_cb()
* @param[in] provider The provider handle
* @return @c 0 on success,
* otherwise a negative error value
+ * @retval #DATA_CONTROL_ERROR_NONE Successful
+ * @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @see data_control_map_register_response_cb()
*/
int data_control_map_unregister_response_cb(data_control_h provider);
* @return @c 0 on success,
* otherwise a negative error value
* @retval #DATA_CONTROL_ERROR_NONE Successful
- * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
* @see data_control_map_register_add_bulk_data_response_cb()
*/
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
* @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
* @see data_control_map_register_response_cb()
* @see data_control_map_unbind_response_cb()
*/
* @return @c 0 on success,
* otherwise a negative error value
* @retval #DATA_CONTROL_ERROR_NONE Successful
- * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
* @see data_control_map_bind_add_bulk_data_response_cb()
*/
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
* @retval #DATA_CONTROL_ERROR_PERMISSION_DENIED Permission denied
*/
int data_control_provider_sql_register_cb(data_control_provider_sql_cb *callback, void *user_data);
*
* @return @c 0 on success,
* otherwise a negative error value
+ *
+ * @retval #DATA_CONTROL_ERROR_NONE Successful
*/
int data_control_provider_sql_unregister_cb(void);
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
* @retval #DATA_CONTROL_ERROR_PERMISSION_DENIED Permission denied
*/
int data_control_provider_map_register_cb(data_control_provider_map_cb *callback, void *user_data);
*
* @return @c 0 on success,
* otherwise a negative error value
+ *
+ * @retval #DATA_CONTROL_ERROR_NONE Successful
*/
int data_control_provider_map_unregister_cb(void);
* otherwise a negative error value
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
+ * @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
+ * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
int data_control_provider_get_client_appid(int request_id, char **appid);
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
+ * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #DATA_CONTROL_ERROR_PERMISSION_DENIED Permission denied
*/
int data_control_provider_send_select_result(int request_id, void *db_handle);
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
+ * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
int data_control_provider_send_insert_result(int request_id, long long row_id);
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
+ * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
int data_control_provider_send_update_result(int request_id);
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
+ * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
int data_control_provider_send_delete_result(int request_id);
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
+ * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
int data_control_provider_send_error(int request_id, const char *error);
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
+ * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
int data_control_provider_send_map_result(int request_id);
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
+ * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #DATA_CONTROL_ERROR_PERMISSION_DENIED Permission denied
*/
int data_control_provider_send_map_get_value_result(int request_id, char **value_list, int value_count);
* @return @c true if the provider_id matches,
* otherwise @c false if it does not match
* @exception DATA_CONTROL_ERROR_NONE Success
+ * @exception DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @exception DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
bool data_control_provider_match_provider_id(data_control_h provider, const char *provider_id);
* @return @c true if the @a data_id matches,
* otherwise @c false if it does not match
* @exception DATA_CONTROL_ERROR_NONE Success
+ * @exception DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @exception DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
bool data_control_provider_match_data_id(data_control_h provider, const char *data_id);
* otherwise a negative error value
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
- * @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
+ * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
* @see data_control_provider_data_change_consumer_filter_cb()
*/
* otherwise a negative error value
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
- * @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
int data_control_provider_remove_data_change_consumer_filter_cb(int callback_id);
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
+ * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
int data_control_provider_send_bulk_insert_result(int request_id, data_control_bulk_result_data_h bulk_results);
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
+ * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
int data_control_provider_send_map_bulk_add_result(int request_id, data_control_bulk_result_data_h bulk_results);
* otherwise a negative error value
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
+ * @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #DATA_CONTROL_ERROR_PERMISSION_DENIED Permission denied
*/
* @return @c 0 on success,
* otherwise a negative error value
*
+ * @retval #DATA_CONTROL_ERROR_NONE Successful
* @see data_control_provider_sql_register_insert_bulk_data_request_cb()
*/
int data_control_provider_sql_unregister_insert_bulk_data_request_cb(void);
* otherwise a negative error value
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
+ * @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #DATA_CONTROL_ERROR_PERMISSION_DENIED Permission denied
*/
* @return @c 0 on success,
* otherwise a negative error value
*
+ * @retval #DATA_CONTROL_ERROR_NONE Successful
* @see data_control_provider_map_register_add_bulk_data_request_cb()
*/
int data_control_provider_map_unregister_add_bulk_data_request_cb(void);
*
* @retval #DATACONTROL_ERROR_NONE Successful
* @retval #DATACONTROL_ERROR_IO_ERROR I/O error
+ * @retval #DATACONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATACONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
EXPORT_API int datacontrol_provider_send_select_result_without_data(int request_id, int *fd);
* @return @c 0 on success,
* otherwise a negative error value
*
+ * @retval #DATA_CONTROL_ERROR_NONE Successful
+ * @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
* @see data_control_sql_create()
*/
int data_control_sql_destroy(data_control_h provider);
* otherwise a negative error value
*
* @retval #DATA_CONTROL_ERROR_NONE Successful
+ * @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
* @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
*
*
* @return @c 0 on success,
* otherwise a negative error value
+ *
+ * @retval #DATA_CONTROL_ERROR_NONE Successful
+ * @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @see data_control_sql_register_response_cb()
*/
int data_control_sql_unregister_response_cb(data_control_h provider);
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
* @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #DATA_CONTROL_ERROR_MAX_EXCEEDED Too long argument
*/
int data_control_sql_insert(data_control_h provider, const bundle *insert_data, int *request_id);
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
* @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #DATA_CONTROL_ERROR_MAX_EXCEEDED Too long argument
*/
int data_control_sql_update(data_control_h provider, const bundle *update_data, const char *where, int *request_id);
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
* @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #DATA_CONTROL_ERROR_MAX_EXCEEDED Too long argument
*/
int data_control_sql_insert_bulk_data(data_control_h provider, data_control_bulk_data_h bulk_data, int *request_id);
* @return @c 0 on success,
* otherwise a negative error value
* @retval #DATA_CONTROL_ERROR_NONE Successful
- * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
+ *
* @see data_control_sql_register_insert_bulk_data_response_cb()
*/
int data_control_sql_unregister_insert_bulk_data_response_cb(data_control_h provider);
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
* @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
* @see data_control_sql_register_response_cb()
* @see data_control_sql_unbind_response_cb()
*/
* @return @c 0 on success,
* otherwise a negative error value
* @retval #DATA_CONTROL_ERROR_NONE Successful
- * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
* @see data_control_sql_unbind_insert_bulk_data_response_cb()
*/
* otherwise a negative error value
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
- * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
int data_control_sql_step_first(result_set_cursor cursor);
* otherwise a negative error value
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
- * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
int data_control_sql_step_last(result_set_cursor cursor);
* otherwise a negative error value
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
- * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
int data_control_sql_step_next(result_set_cursor cursor);
* @since_tizen 2.3
* @param[in] cursor The cursor that navigates the result of the request for the select operation
* @return The number of columns in the calling cursor
+ * @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
int data_control_sql_get_column_count(result_set_cursor cursor);
* otherwise a negative error value
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
+ * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
int data_control_sql_get_column_name(result_set_cursor cursor, int column_index, char *name);
* otherwise a negative error value
* @retval #DATA_CONTROL_ERROR_NONE Successful
* @retval #DATA_CONTROL_ERROR_IO_ERROR I/O error
+ * @retval #DATA_CONTROL_ERROR_OUT_OF_MEMORY Out of memory
* @retval #DATA_CONTROL_ERROR_MAX_EXCEEDED Too long argument
* @retval #DATA_CONTROL_ERROR_INVALID_PARAMETER Invalid parameter
*/
EXPORT_API int data_control_bulk_data_add(data_control_bulk_data_h bulk_data_h,
bundle *data)
{
+ bundle *dup_bundle;
+
if (bulk_data_h == NULL || data == NULL) {
_LOGE("Invalid data");
return DATA_CONTROL_ERROR_INVALID_PARAMETER;
}
+ dup_bundle = bundle_dup(data);
+ if (dup_bundle == NULL) {
+ _LOGE("Fail to add bulk data. Out of memory.");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
+
bulk_data_h->data_list = g_list_append(bulk_data_h->data_list,
- bundle_dup(data));
+ dup_bundle);
_LOGI("append bulk data : %d", g_list_length(bulk_data_h->data_list));
return DATA_CONTROL_ERROR_NONE;
}
*result_data_h =
(struct data_control_bulk_result_data_s *)calloc(1, sizeof(struct data_control_bulk_result_data_s));
+ if (*result_data_h == NULL) {
+ _LOGE("fail to alloc bulk_result_data");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
+
return DATA_CONTROL_ERROR_NONE;
}
{
struct datacontrol_cert_info *cert_info;
char *victim_key;
+ char *hash_key;
if (g_hash_table_size(hash) > CHECKED_CACHE_SIZE) {
victim_key = __get_victim(hash);
time(&cert_info->time);
- g_hash_table_insert(hash, strdup(key), cert_info);
+ hash_key = strdup(key);
+ if (hash_key == NULL) {
+ free(cert_info);
+ _LOGE("out of memory.");
+ return;
+ }
+
+ g_hash_table_insert(hash, hash_key, cert_info);
}
static void __free_cb_info(gpointer data)
_LOGI("nbytes : %d %d" , nbytes , nb);
value_list[i] = (char *)calloc(nbytes + 1, sizeof(char));
+ if (value_list[i] == NULL) {
+ _LOGE("Out of memory");
+ goto ERROR;
+ }
if (_read_socket(fd, value_list[i], nbytes, &nb)) {
_LOGE("datacontrol_recv_map_get_value_list : ...from %d: fail to read\n", fd);
_LOGI("Error message: %s", error_message);
p = bundle_get_val(b, OSP_K_REQUEST_ID);
- if (!p) {
+ if (!p)
_LOGE("Invalid Bundle: request_id is null");
- } else {
+ else
request_id = atoi(p);
- }
_LOGI("Request ID: %d", request_id);
&extra_kb_data, &extra_kb_datalen);
if (extra_kb_data == NULL) {
_LOGE("bundle encode error");
+ ret = DATA_CONTROL_ERROR_IO_ERROR;
goto out;
}
}
/* encoded bundle + encoded bundle size */
buf = (char *)calloc(total_len, sizeof(char));
if (buf == NULL) {
- bundle_free_encoded_rawdata(&kb_data);
_LOGE("Out of memory.");
+ ret = DATA_CONTROL_ERROR_OUT_OF_MEMORY;
goto out;
}
datacontrol_socket_info *_socket_info = NULL;
bundle *sock_bundle = bundle_create();
+ if (sock_bundle == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
bundle_add_str(sock_bundle, AUL_K_CALLER_APPID, caller_id);
bundle_add_str(sock_bundle, AUL_K_CALLEE_APPID, callee_id);
bundle_add_str(sock_bundle, "DATA_CONTROL_TYPE", type);
const int TRY_COUNT = 2;
const struct timespec TRY_SLEEP_TIME = { 0, 1000 * 1000 * 1000 };
bundle *send_data;
+ char *socket_hash_key;
_LOGI("Data control request, type: %d, request id: %d", type, request_id);
return ret;
}
+ socket_hash_key = strdup(provider->provider_id);
+ if (socket_hash_key == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
+
g_hash_table_insert(__socket_pair_hash,
- strdup(provider->provider_id), socket_info);
+ socket_hash_key, socket_info);
}
_LOGI("send data from consumer");
GINT_TO_POINTER(provider->handle_id));
if (cb_info == NULL) {
ret = __create_cb_info_s(provider, type, &reserved_cb_info);
- if (ret != DATA_CONTROL_ERROR_NONE) {
+ if (ret != DATA_CONTROL_ERROR_NONE)
goto out;
- }
+
g_hash_table_insert(__bound_cb_hash,
GINT_TO_POINTER(reserved_cb_info->id), (gpointer)reserved_cb_info);
cb_info = reserved_cb_info;
} else {
if (response_cb_s->registered_cb == NULL) {
ret = __create_cb_info_s(provider, type, &reserved_cb_info);
- if (ret != DATA_CONTROL_ERROR_NONE) {
+ if (ret != DATA_CONTROL_ERROR_NONE)
goto out;
- }
+
response_cb_s->registered_cb = reserved_cb_info;
}
cb_info = response_cb_s->registered_cb;
return DATA_CONTROL_ERROR_INVALID_PARAMETER;
request = (struct data_control_s *)calloc(1, sizeof(struct data_control_s));
- if (request == NULL)
+ if (request == NULL) {
+ _LOGE("Out of memory");
return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
request->handle_id = __get_unique_handle_id();
int _set_provider_id(data_control_h provider, const char *provider_id)
{
+ char *dup_provider_id;
+
if (provider == NULL || provider_id == NULL)
return DATA_CONTROL_ERROR_INVALID_PARAMETER;
+ dup_provider_id = strdup(provider_id);
+ if (dup_provider_id == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
+
if (provider->provider_id != NULL)
free(provider->provider_id);
- provider->provider_id = strdup(provider_id);
- if (provider->provider_id == NULL)
- return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ provider->provider_id = dup_provider_id;
return DATA_CONTROL_ERROR_NONE;
}
int _get_provider_id(data_control_h provider, char **provider_id)
{
+ char *dup_provider_id;
+
if (provider == NULL || provider_id == NULL)
return DATA_CONTROL_ERROR_INVALID_PARAMETER;
if (provider->provider_id != NULL) {
- *provider_id = strdup(provider->provider_id);
- if (*provider_id == NULL)
+ dup_provider_id = strdup(provider->provider_id);
+ if (dup_provider_id == NULL) {
+ _LOGE("Out of memory");
return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
+
+ *provider_id = dup_provider_id;
} else {
*provider_id = NULL;
int _set_data_id(data_control_h provider, const char *data_id)
{
+ char *dup_data_id;
+
if (provider == NULL || data_id == NULL)
return DATA_CONTROL_ERROR_INVALID_PARAMETER;
+ dup_data_id = strdup(data_id);
+ if (dup_data_id == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
+
if (provider->data_id != NULL)
free(provider->data_id);
- provider->data_id = strdup(data_id);
- if (provider->data_id == NULL)
- return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ provider->data_id = dup_data_id;
return DATA_CONTROL_ERROR_NONE;
}
int _get_data_id(data_control_h provider, char **data_id)
{
+ char *dup_data_id;
+
if (provider == NULL || data_id == NULL)
return DATA_CONTROL_ERROR_INVALID_PARAMETER;
if (provider->data_id != NULL) {
- *data_id = strdup(provider->data_id);
- if (*data_id == NULL)
+ dup_data_id = strdup(provider->data_id);
+ if (dup_data_id == NULL) {
+ _LOGE("Out of memory");
return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
+
+ *data_id = dup_data_id;
} else {
*data_id = NULL;
add_callback_result_cb_info_s *result_cb_info = NULL;
char *provider_app_id = NULL;
char *access = NULL;
+ bool new_provider = false;
+ int data_changed_callback_id;
ret = _check_privilege(PRIVILEGE_CONSUMER);
if (ret != DATA_CONTROL_ERROR_NONE)
}
}
- *callback_id = _datacontrol_get_data_changed_callback_id();
+ data_changed_callback_id = _datacontrol_get_data_changed_callback_id();
unique_id = g_dbus_connection_get_unique_name(_get_dbus_connection());
- _LOGI("unique_id : %s, callback_id %d", unique_id, *callback_id);
+ _LOGI("unique_id : %s, callback_id %d", unique_id, data_changed_callback_id);
find_provider_info.provider_id = provider->provider_id;
find_provider_info.data_id = provider->data_id;
ret = DATA_CONTROL_ERROR_OUT_OF_MEMORY;
goto err;
}
+ new_provider = true;
+
provider_info->provider_appid = strdup(provider_app_id);
+ if (provider_info->provider_appid == NULL) {
+ _LOGE("app_id alloc fail out of memory.");
+ ret = DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ goto err;
+ }
+
provider_info->provider_id = strdup(provider->provider_id);
+ if (provider_info->provider_id == NULL) {
+ _LOGE("provider_id alloc fail out of memory.");
+ ret = DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ goto err;
+ }
+
provider_info->data_id = strdup(provider->data_id);
- provider_info->monitor_id = monitor_id;
- if (provider_info->provider_id == NULL ||
- provider_info->data_id == NULL) {
+ if (provider_info->data_id == NULL) {
_LOGE("data_id alloc fail out of memory.");
ret = DATA_CONTROL_ERROR_OUT_OF_MEMORY;
- __free_provider_info(provider_info);
goto err;
}
+
+ provider_info->monitor_id = monitor_id;
__changed_provider_list =
g_list_append(__changed_provider_list, provider_info);
} else {
provider_info->provider_id,
provider_info->data_id,
unique_id,
- *callback_id,
+ data_changed_callback_id,
DATACONTROL_TYPE_ADD_DATA_CHANGED_CB);
if (ret != DATA_CONTROL_ERROR_NONE) {
_LOGE("__noti_request_appsvc_run error !!!");
cb_info->changed_cb = callback;
cb_info->user_data = user_data;
- cb_info->callback_id = *callback_id;
- provider_info->cb_list = g_list_append(
- provider_info->cb_list, cb_info);
+ cb_info->callback_id = data_changed_callback_id;
result_cb_info =
(add_callback_result_cb_info_s *)calloc(1, sizeof(add_callback_result_cb_info_s));
ret = DATA_CONTROL_ERROR_OUT_OF_MEMORY;
goto err;
}
- result_cb_info->callback_id = *callback_id;
+ result_cb_info->callback_id = data_changed_callback_id;
result_cb_info->callback = result_callback;
result_cb_info->user_data = result_cb_user_data;
result_cb_info->provider_id = strdup(provider_info->provider_id);
+ if (result_cb_info->provider_id == NULL) {
+ _LOGE("out of memory.");
+ ret = DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ goto err;
+ }
+
result_cb_info->data_id = strdup(provider_info->data_id);
+ if (result_cb_info->data_id == NULL) {
+ _LOGE("out of memory.");
+ ret = DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ goto err;
+ }
+
+ provider_info->cb_list = g_list_append(
+ provider_info->cb_list, cb_info);
+ *callback_id = data_changed_callback_id;
+
result_cb_info->timeout_id =
g_timeout_add(5000, __add_callback_result_timeout_handler, result_cb_info);
__add_callback_result_cb_list =
if (path)
free(path);
if (ret != DATA_CONTROL_ERROR_NONE) {
- if (monitor_id > 0)
- g_dbus_connection_signal_unsubscribe(_get_dbus_connection(), monitor_id);
+ if (provider_info != NULL && new_provider == true)
+ __free_provider_info(provider_info);
+ if (result_cb_info != NULL)
+ __free_result_cb_info(result_cb_info);
}
return ret;
}
consumer_info->appid = strdup(app_id);
+ if (consumer_info->appid == NULL) {
+ _LOGE("out of memory.");
+ free(consumer_info);
+ ret = DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ break;
+ }
+
consumer_info->object_path = strdup(object_path);
+ if (consumer_info->object_path == NULL) {
+ _LOGE("out of memory.");
+ free(consumer_info->appid);
+ free(consumer_info);
+ ret = DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ break;
+ }
+
consumer_info->unique_id = strdup(unique_id);
+ if (consumer_info->unique_id == NULL) {
+ _LOGE("out of memory.");
+ free(consumer_info->appid);
+ free(consumer_info->object_path);
+ free(consumer_info);
+ ret = DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ break;
+ }
consumer_info->monitor_id = g_bus_watch_name_on_connection(
_get_dbus_connection(),
}
consumer_info->appid = strdup(caller);
+ if (consumer_info->appid == NULL) {
+ _LOGE("out of memory.");
+ ret = DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ goto EXCEPTION;
+ }
+
consumer_info->object_path = strdup(object_path);
+ if (consumer_info->object_path == NULL) {
+ _LOGE("out of memory.");
+ ret = DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ goto EXCEPTION;
+ }
+
consumer_info->unique_id = strdup(unique_id);
+ if (consumer_info->unique_id == NULL) {
+ _LOGE("out of memory.");
+ ret = DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ goto EXCEPTION;
+ }
consumer_info->monitor_id = g_bus_watch_name_on_connection(
_get_dbus_connection(),
if (consumer_info->monitor_id == 0) {
_LOGE("g_bus_watch_name_on_connection fail");
- free(consumer_info->appid);
- free(consumer_info->object_path);
- free(consumer_info->unique_id);
- free(consumer_info);
-
- return DATA_CONTROL_ERROR_IO_ERROR;
+ ret = DATA_CONTROL_ERROR_IO_ERROR;
+ goto EXCEPTION;
}
_LOGI("new noti consumer_app_list append %s",
consumer_info->object_path);
__noti_consumer_app_list =
g_list_append(__noti_consumer_app_list, consumer_info);
}
+
+ return ret;
+
+EXCEPTION:
+ if (consumer_info) {
+ if (consumer_info->appid)
+ free(consumer_info->appid);
+ if (consumer_info->object_path)
+ free(consumer_info->object_path);
+ if (consumer_info->unique_id)
+ free(consumer_info->unique_id);
+
+ free(consumer_info);
+ }
return ret;
}
static bundle *__set_result(bundle *b, datacontrol_request_type type, void *data)
{
- bundle *res = bundle_create();
/* Set the type */
char type_str[MAX_LEN_DATACONTROL_REQ_TYPE] = {0,};
const char *list[3];
const char *page_num = bundle_get_val(b, RESULT_PAGE_NUMBER);
const char *count_per_page = bundle_get_val(b, MAX_COUNT_PER_PAGE);
+ bundle *res;
if (type == DATACONTROL_TYPE_UNDEFINED || type == DATACONTROL_TYPE_ERROR) {
request_type = bundle_get_val(b, OSP_K_DATACONTROL_REQUEST_TYPE);
snprintf(type_str, MAX_LEN_DATACONTROL_REQ_TYPE, "%d", (int)type);
}
+ res = bundle_create();
+ if (res == NULL) {
+ _LOGE("Out of memory");
+ return NULL;
+ }
+
bundle_add_str(res, OSP_K_DATACONTROL_REQUEST_TYPE, type_str);
/* Set the provider id */
}
dup_caller = strdup(caller);
+ if (dup_caller == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
socket_info = g_hash_table_lookup(__socket_pair_hash, dup_caller);
if (socket_info != NULL)
{
const char *caller;
bundle *b;
+ char *dup_appid;
if (__request_table == NULL)
__initialize_provider();
_LOGI("Request ID: %d, caller appid: %s", request_id, caller);
- *appid = strdup(caller);
+ dup_appid = strdup(caller);
+ if (dup_appid == NULL) {
+ _LOGE("Fail to alloc for appid");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
+ *appid = dup_appid;
return DATA_CONTROL_ERROR_NONE;
}
return DATA_CONTROL_ERROR_INVALID_PARAMETER;
}
res = __set_result(b, DATACONTROL_TYPE_SQL_BULK_INSERT, NULL);
+ if (res == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
+
ret = __send_result(
res, DATACONTROL_TYPE_SQL_BULK_INSERT, (void *)bulk_results);
bundle_free(res);
}
res = __set_result(b, DATACONTROL_TYPE_SQL_SELECT, db_handle);
+ if (res == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
+
ret = __send_result(res, DATACONTROL_TYPE_SQL_SELECT, db_handle);
bundle_free(res);
g_hash_table_remove(__request_table, &request_id);
}
res = __set_result(b, DATACONTROL_TYPE_SQL_INSERT, (void *)&row_id);
+ if (res == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
ret = __send_result(res, DATACONTROL_TYPE_SQL_INSERT, NULL);
bundle_free(res);
}
res = __set_result(b, DATACONTROL_TYPE_SQL_UPDATE, NULL);
+ if (res == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
ret = __send_result(res, DATACONTROL_TYPE_SQL_UPDATE, NULL);
bundle_free(res);
}
res = __set_result(b, DATACONTROL_TYPE_SQL_DELETE, NULL);
+ if (res == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
ret = __send_result(res, DATACONTROL_TYPE_SQL_DELETE, NULL);
bundle_free(res);
}
res = __set_result(b, DATACONTROL_TYPE_ERROR, (void *)error);
+ if (res == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
+
ret = __send_result(res, DATACONTROL_TYPE_ERROR, NULL);
bundle_free(res);
index = pair->no_of_elements;
pair->keys[index] = strdup(key);
+ if (pair->keys[index] == NULL) {
+ _LOGE("Out of memory");
+ return;
+ }
bundle_keyval_get_basic_val((bundle_keyval_t *)kv, (void **)&value, &value_len);
pair->vals[index] = strdup(value);
+ if (pair->vals[index] == NULL) {
+ _LOGE("Out of memory");
+ return;
+ }
+
pair->length += strlen(key) + value_len;
++(pair->no_of_elements);
return DATA_CONTROL_ERROR_INVALID_PARAMETER;
}
res = __set_result(b, DATACONTROL_TYPE_MAP_BULK_ADD, NULL);
+ if (res == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
+
ret = __send_result(res, DATACONTROL_TYPE_MAP_BULK_ADD,
(void *)bulk_results);
bundle_free(res);
}
res = __set_result(b, DATACONTROL_TYPE_UNDEFINED, NULL);
+ if (res == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
ret = __send_result(res, DATACONTROL_TYPE_UNDEFINED, NULL);
bundle_free(res);
bundle_add_str(b, RESULT_VALUE_COUNT, value_count_str);
res = __set_result(b, DATACONTROL_TYPE_MAP_GET, value_list);
+ if (res == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
ret = __send_result(res, DATACONTROL_TYPE_MAP_GET, value_list);
bundle_free(res);
return DATA_CONTROL_ERROR_INVALID_PARAMETER;
}
res = __set_result(b, DATACONTROL_TYPE_SQL_SELECT, NULL);
+ if (res == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
+
ret = __send_result(res, DATACONTROL_TYPE_UNDEFINED, NULL);
bundle_free(res);
if (i == column_index) {
col_name = (char *)calloc(column_len, sizeof(char));
+ if (col_name == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
+
ret = read(fd, col_name, column_len);
if (ret == 0) {
_LOGE("unable to read col_name : %s",
if (size > 0 && size < MAX_REQUEST_ARGUMENT_SIZE) {
data = (char *)malloc((size + 1) * (sizeof(char)));
+ if (data == NULL) {
+ _LOGE("Out of memory");
+ return DATA_CONTROL_ERROR_OUT_OF_MEMORY;
+ }
memset(data, 0, size + 1);
ret = read(fd, data, size);