Fix out of memory and wrong descriptions for retval 51/139751/9
authorInkyun Kil <inkyun.kil@samsung.com>
Thu, 20 Jul 2017 09:01:39 +0000 (18:01 +0900)
committerInkyun Kil <inkyun.kil@samsung.com>
Fri, 18 Aug 2017 01:20:37 +0000 (10:20 +0900)
Change-Id: I9107da818a64e67c3f37d4fecd747e8735ec88c8
Signed-off-by: Inkyun Kil <inkyun.kil@samsung.com>
Signed-off-by: jusung son <jusung07.son@samsung.com>
include/data_control_bulk.h
include/data_control_map.h
include/data_control_provider.h
include/data_control_provider_internal.h
include/data_control_sql.h
include/data_control_sql_cursor.h
src/data_control_bulk.c [changed mode: 0644->0755]
src/data_control_internal.c
src/data_control_noti.c
src/data_control_provider.c
src/data_control_sql_cursor.c

index 2ceb58a..eeb9975 100755 (executable)
@@ -96,6 +96,7 @@ int data_control_bulk_data_get_count(data_control_bulk_data_h bulk_data, int *co
  * @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);
@@ -169,6 +170,7 @@ int data_control_bulk_result_data_get_count(data_control_bulk_result_data_h resu
  * @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()
  */
index 3bf4f28..5268637 100755 (executable)
@@ -182,6 +182,8 @@ int data_control_map_create(data_control_h *provider);
  * @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);
@@ -266,6 +268,7 @@ int data_control_map_get_data_id(data_control_h provider, char **data_id);
  * @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()
@@ -279,6 +282,9 @@ int data_control_map_register_response_cb(data_control_h provider, data_control_
  * @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);
 
@@ -674,7 +680,6 @@ int data_control_map_register_add_bulk_data_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()
  */
@@ -710,6 +715,7 @@ int data_control_map_unregister_add_bulk_data_response_cb(data_control_h provide
  * @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()
  */
@@ -771,7 +777,6 @@ int data_control_map_bind_add_bulk_data_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_bind_add_bulk_data_response_cb()
  */
index a00a068..831ef62 100755 (executable)
@@ -260,6 +260,7 @@ typedef struct {
  *
  * @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);
@@ -271,6 +272,8 @@ int data_control_provider_sql_register_cb(data_control_provider_sql_cb *callback
  *
  * @return @c 0 on success,
  *         otherwise a negative error value
+ *
+ * @retval #DATA_CONTROL_ERROR_NONE Successful
  */
 int data_control_provider_sql_unregister_cb(void);
 
@@ -290,6 +293,7 @@ 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);
@@ -301,6 +305,8 @@ int data_control_provider_map_register_cb(data_control_provider_map_cb *callback
  *
  * @return @c 0 on success,
  *         otherwise a negative error value
+ *
+ * @retval #DATA_CONTROL_ERROR_NONE Successful
  */
 int data_control_provider_map_unregister_cb(void);
 
@@ -316,6 +322,8 @@ 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);
@@ -333,8 +341,8 @@ 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);
 
@@ -351,6 +359,7 @@ 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);
@@ -367,6 +376,7 @@ 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);
@@ -383,6 +393,7 @@ 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);
@@ -400,6 +411,7 @@ 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);
@@ -416,6 +428,7 @@ 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);
@@ -434,8 +447,8 @@ 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);
 
@@ -530,6 +543,7 @@ char *data_control_provider_create_select_statement(data_control_h provider, con
  * @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);
@@ -547,6 +561,7 @@ bool data_control_provider_match_provider_id(data_control_h provider, const char
  * @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);
@@ -592,7 +607,7 @@ int data_control_provider_send_data_change_noti(data_control_h provider, data_co
  *         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()
  */
@@ -609,7 +624,6 @@ int data_control_provider_add_data_change_consumer_filter_cb(data_control_provid
  *         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);
@@ -649,6 +663,7 @@ int data_control_provider_foreach_data_change_consumer(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
  */
 int data_control_provider_send_bulk_insert_result(int request_id, data_control_bulk_result_data_h bulk_results);
@@ -666,6 +681,7 @@ int data_control_provider_send_bulk_insert_result(int request_id, data_control_b
  *
  * @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);
@@ -685,6 +701,7 @@ int data_control_provider_send_map_bulk_add_result(int request_id, data_control_
  *         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
  */
@@ -698,6 +715,7 @@ int data_control_provider_sql_register_insert_bulk_data_request_cb(data_control_
  * @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);
@@ -717,6 +735,7 @@ 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
  */
@@ -730,6 +749,7 @@ int data_control_provider_map_register_add_bulk_data_request_cb(data_control_pro
  * @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);
index e1b294c..d2eb718 100755 (executable)
@@ -45,6 +45,7 @@ extern "C" {
  *
  * @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);
index 36e1429..af2d989 100755 (executable)
@@ -184,6 +184,8 @@ int data_control_sql_create(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
  * @see data_control_sql_create()
  */
 int data_control_sql_destroy(data_control_h provider);
@@ -319,6 +321,7 @@ int data_control_sql_get_data_id(data_control_h provider, char **data_id);
  *         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
  *
@@ -336,6 +339,11 @@ int data_control_sql_register_response_cb(data_control_h provider, data_control_
  *
  * @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);
 
@@ -473,6 +481,7 @@ int data_control_sql_delete(data_control_h provider, const char *where, int *req
  * @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);
 
@@ -655,6 +664,7 @@ int data_control_sql_select_with_page(data_control_h provider, char **column_lis
  * @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);
 
@@ -736,6 +746,7 @@ int data_control_sql_update(data_control_h provider, const bundle *update_data,
  * @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);
 
@@ -777,8 +788,8 @@ int data_control_sql_register_insert_bulk_data_response_cb(data_control_h provid
  * @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);
@@ -814,6 +825,7 @@ int data_control_sql_unregister_insert_bulk_data_response_cb(data_control_h prov
  * @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()
  */
@@ -881,7 +893,6 @@ int data_control_sql_bind_insert_bulk_data_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_sql_unbind_insert_bulk_data_response_cb()
  */
index 06f3193..459e926 100755 (executable)
@@ -72,7 +72,6 @@ typedef struct result_set_s *result_set_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_first(result_set_cursor cursor);
@@ -105,7 +104,6 @@ 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);
@@ -138,7 +136,6 @@ 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);
@@ -161,6 +158,7 @@ int data_control_sql_step_previous(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);
 
@@ -175,6 +173,7 @@ 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);
@@ -219,6 +218,7 @@ int data_control_sql_get_column_item_type(result_set_cursor cursor, int column_i
  *         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
  */
old mode 100644 (file)
new mode 100755 (executable)
index 83b36d3..8caed24
@@ -90,13 +90,21 @@ EXPORT_API int data_control_bulk_data_get_count(data_control_bulk_data_h bulk_da
 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;
 }
@@ -205,6 +213,11 @@ EXPORT_API int data_control_bulk_result_data_create(data_control_bulk_result_dat
 
        *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;
 }
 
index 187f67a..5d315ae 100755 (executable)
@@ -137,6 +137,7 @@ static void __insert_hash(GHashTable *hash, const char *key,
 {
        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);
@@ -158,7 +159,14 @@ static void __insert_hash(GHashTable *hash, const char *key,
 
        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)
@@ -287,6 +295,10 @@ static char **__map_get_value_list(int fd, int *value_count)
 
                _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);
@@ -931,11 +943,10 @@ static int __handle_cb(int fd, bundle *b, __response_cb_s *data)
        _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);
 
@@ -1247,6 +1258,7 @@ static int __datacontrol_send_async(int sockfd, bundle *kb, void *extra_data,
                                &extra_kb_data, &extra_kb_datalen);
                if (extra_kb_data == NULL) {
                        _LOGE("bundle encode error");
+                       ret = DATA_CONTROL_ERROR_IO_ERROR;
                        goto out;
                }
        }
@@ -1258,8 +1270,8 @@ static int __datacontrol_send_async(int sockfd, bundle *kb, void *extra_data,
        /* 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;
        }
 
@@ -1498,6 +1510,10 @@ int _add_watch_on_socket_info(const char *caller_id,
 
        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);
@@ -1579,6 +1595,7 @@ int _request_provider(data_control_h provider, datacontrol_request_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);
 
@@ -1667,8 +1684,14 @@ int _request_provider(data_control_h provider, datacontrol_request_type type,
                                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");
@@ -1817,9 +1840,9 @@ int _register_response_cb(data_control_h provider, void *response_cb,
                                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;
@@ -1829,9 +1852,9 @@ int _register_response_cb(data_control_h provider, void *response_cb,
        } 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;
@@ -2255,8 +2278,10 @@ int _create_data_control_h(data_control_h *provider)
                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();
 
@@ -2298,28 +2323,40 @@ int _destroy_data_control_h(data_control_h provider, bool remove_bound_cb)
 
 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;
@@ -2330,28 +2367,40 @@ int _get_provider_id(data_control_h provider, char **provider_id)
 
 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;
index a4157da..4ef4f37 100755 (executable)
@@ -307,6 +307,8 @@ EXPORT_API int data_control_add_data_change_cb(
        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)
@@ -336,9 +338,9 @@ EXPORT_API int data_control_add_data_change_cb(
                }
        }
 
-       *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;
@@ -372,17 +374,30 @@ EXPORT_API int data_control_add_data_change_cb(
                        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 {
@@ -394,7 +409,7 @@ EXPORT_API int data_control_add_data_change_cb(
                        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 !!!");
@@ -411,9 +426,7 @@ EXPORT_API int data_control_add_data_change_cb(
 
        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));
@@ -422,11 +435,27 @@ EXPORT_API int data_control_add_data_change_cb(
                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 =
@@ -442,8 +471,10 @@ err:
        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;
index 5013d2b..4e21c40 100755 (executable)
@@ -407,8 +407,31 @@ static int __init_changed_noti_consumer_list()
                }
 
                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(),
@@ -594,8 +617,25 @@ static int __set_consumer_app_list(
                }
 
                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(),
@@ -608,24 +648,33 @@ static int __set_consumer_app_list(
                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,};
@@ -638,6 +687,7 @@ static bundle *__set_result(bundle *b, datacontrol_request_type type, void *data
        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);
@@ -649,6 +699,12 @@ static bundle *__set_result(bundle *b, datacontrol_request_type type, void *data
                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 */
@@ -1852,6 +1908,10 @@ int __datacontrol_handler_cb(bundle *b, int request_id, void *data)
                }
 
                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)
@@ -2006,6 +2066,7 @@ EXPORT_API int data_control_provider_get_client_appid(
 {
        const char *caller;
        bundle *b;
+       char *dup_appid;
 
        if (__request_table == NULL)
                __initialize_provider();
@@ -2024,8 +2085,13 @@ EXPORT_API int data_control_provider_get_client_appid(
 
        _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;
 }
 
@@ -2064,6 +2130,11 @@ EXPORT_API int data_control_provider_send_bulk_insert_result(
                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);
@@ -2091,6 +2162,11 @@ EXPORT_API int data_control_provider_send_select_result(
        }
 
        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);
@@ -2117,6 +2193,10 @@ int ret;
        }
 
        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);
@@ -2143,6 +2223,10 @@ EXPORT_API int data_control_provider_send_update_result(int request_id)
        }
 
        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);
@@ -2169,6 +2253,10 @@ EXPORT_API int data_control_provider_send_delete_result(int request_id)
        }
 
        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);
@@ -2196,6 +2284,11 @@ EXPORT_API int data_control_provider_send_error(
        }
 
        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);
 
@@ -2216,9 +2309,18 @@ static void bundle_foreach_cb(const char *key, const int type,
        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);
@@ -2601,6 +2703,11 @@ EXPORT_API int data_control_provider_send_map_bulk_add_result(
                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);
@@ -2627,6 +2734,10 @@ int ret;
        }
 
        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);
@@ -2658,6 +2769,10 @@ EXPORT_API int data_control_provider_send_map_get_value_result(
        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);
@@ -2913,6 +3028,11 @@ int datacontrol_provider_send_select_result_without_data(
                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);
 
index 5886590..27b0a6c 100755 (executable)
@@ -202,6 +202,11 @@ EXPORT_API int data_control_sql_get_column_name(result_set_cursor cursor,
 
                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",
@@ -455,6 +460,10 @@ EXPORT_API int data_control_sql_get_blob_data(result_set_cursor cursor,
 
        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);