Fix defect 27/95327/1 accepted/tizen/3.0/common/20161114.081704 accepted/tizen/3.0/ivi/20161110.015028 accepted/tizen/3.0/mobile/20161110.014934 accepted/tizen/3.0/tv/20161110.014952 accepted/tizen/3.0/wearable/20161110.015007 accepted/tizen/common/20161107.072201 accepted/tizen/ivi/20161108.000753 accepted/tizen/mobile/20161108.000700 accepted/tizen/tv/20161108.000713 accepted/tizen/wearable/20161108.000733 submit/tizen/20161107.015116 submit/tizen_3.0/20161107.015011 submit/tizen_3.0_common/20161110.084657
authorjusung son <jusung07.son@samsung.com>
Thu, 3 Nov 2016 01:30:03 +0000 (10:30 +0900)
committerjusung son <jusung07.son@samsung.com>
Thu, 3 Nov 2016 01:30:03 +0000 (10:30 +0900)
- memory leak
- exception handling
- typo

Change-Id: I95c1fa2d1de35306ec5d25e4506221cd36cf4611
Signed-off-by: jusung son <jusung07.son@samsung.com>
include/data-control-provider.h [changed mode: 0644->0755]
src/data-control-noti.c
src/data-control-provider.c

old mode 100644 (file)
new mode 100755 (executable)
index db37221..e7e82db
@@ -367,7 +367,7 @@ EXPORT_API int datacontrol_provider_remove_data_change_consumer_filter_cb(int ca
  */
 EXPORT_API int datacontrol_provider_foreach_data_change_consumer(
                datacontrol_h provider,
-               void *list_cb,
+               data_control_provider_data_change_consumer_cb list_cb,
                void *user_data);
 
 EXPORT_API int datacontrol_provider_send_bulk_insert_result(
index 424e2c1..7068b07 100755 (executable)
@@ -181,18 +181,24 @@ static void __call_result_callback(int callback_id, int callback_result)
 
        if (find_list != NULL) {
                result_cb_info = (add_callback_result_cb_info_s *)find_list->data;
-               _create_datacontrol_h(&provider);
-               _set_provider_id(provider, result_cb_info->provider_id);
-               _set_data_id(provider, result_cb_info->data_id);
-               result_cb_info->callback(
-                               (data_control_h)provider,
-                               callback_result,
-                               callback_id,
-                               result_cb_info->user_data);
+               if (result_cb_info->callback) {
+                       _create_datacontrol_h(&provider);
+                       _set_provider_id(provider, result_cb_info->provider_id);
+                       _set_data_id(provider, result_cb_info->data_id);
+
+                       result_cb_info->callback(
+                                       (data_control_h)provider,
+                                       callback_result,
+                                       callback_id,
+                                       result_cb_info->user_data);
+
+                       _destroy_datacontrol_h(provider);
+               } else {
+                       LOGE("data_control_add_callback_result_cb is null");
+               }
 
                __add_callback_result_cb_list = g_list_remove(__add_callback_result_cb_list, find_list->data);
                __free_result_cb_info(result_cb_info);
-               _destroy_datacontrol_h(provider);
        } else {
                LOGE("add_callback_result_cb_info_s is null");
        }
index e340e38..7cf363d 100755 (executable)
@@ -664,6 +664,7 @@ static data_control_bulk_data_h __get_bulk_data_from_fd(int fd)
                        return NULL;
                }
                datacontrol_bulk_data_add(ret_bulk_data_h, data);
+               bundle_free(data);
        }
        return ret_bulk_data_h;
 }
@@ -1627,7 +1628,7 @@ static int __provider_noti_process(bundle *b, datacontrol_request_type type)
                } else {
                        LOGI("empty __consumer_app_list");
                }
-               result = __delete_consumer_list_db_info(path);
+               result = __delete_consumer_list_db_info(unique_id);
                if (result != DATACONTROL_ERROR_NONE) {
                        LOGE("__delete_consumer_list_db_info fail %d", result);
                        result = DATACONTROL_ERROR_IO_ERROR;
@@ -2133,7 +2134,7 @@ int datacontrol_provider_remove_data_change_consumer_filter_cb(int callback_id)
 
 int datacontrol_provider_foreach_data_change_consumer(
                datacontrol_h provider,
-               void *list_cb,
+               data_control_provider_data_change_consumer_cb list_cb,
                void *user_data)
 {
        char *app_id = NULL;
@@ -2143,7 +2144,7 @@ int datacontrol_provider_foreach_data_change_consumer(
        char query[QUERY_MAXLEN];
        bool callback_result;
        data_control_provider_data_change_consumer_cb consumer_list_cb;
-       consumer_list_cb = (data_control_provider_data_change_consumer_cb)list_cb;
+       consumer_list_cb = list_cb;
 
        sqlite3_snprintf(QUERY_MAXLEN, query,
                        "SELECT app_id, unique_id " \