From 88deb9aedbbbf4786e06bbec76bc64e2b792336f Mon Sep 17 00:00:00 2001 From: Inkyun Kil Date: Thu, 7 Jan 2021 11:21:41 +0900 Subject: [PATCH] Fix static analysis issue Change-Id: I5c2eab1e985341c651c5c0d95b3283bfcb9c50a5 Signed-off-by: Inkyun Kil --- src/data_control_provider.c | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/src/data_control_provider.c b/src/data_control_provider.c index 0937ea5..4ccfb14 100644 --- a/src/data_control_provider.c +++ b/src/data_control_provider.c @@ -2427,8 +2427,9 @@ EXPORT_API char *data_control_provider_create_insert_statement( int sql_len; char *sql; int row_count = bundle_get_count(insert_map); + int ret; - if (provider == NULL || row_count == 0) { + if (provider == NULL || row_count == 0) { set_last_result(DATA_CONTROL_ERROR_INVALID_PARAMETER); return NULL; } @@ -2459,7 +2460,14 @@ EXPORT_API char *data_control_provider_create_insert_statement( index = 0; bundle_foreach(insert_map, bundle_foreach_cb, (void *)(cols)); - _get_data_id(provider, &data_id); + ret = _get_data_id(provider, &data_id); + if (ret != DATA_CONTROL_ERROR_NONE) { + free(cols->keys); + free(cols->vals); + free(cols); + set_last_result(ret); + return NULL; + } sql_len = INSERT_STMT_CONST_LEN + strlen(data_id) + (row_count - 1) * 4 + (cols->length) + 1; @@ -2515,13 +2523,18 @@ EXPORT_API char *data_control_provider_create_delete_statement( int cond_len; int sql_len; char *sql; + int ret; if (provider == NULL) { set_last_result(DATA_CONTROL_ERROR_INVALID_PARAMETER); return NULL; } - _get_data_id(provider, &data_id); + ret = _get_data_id(provider, &data_id); + if (ret != DATA_CONTROL_ERROR_NONE) { + set_last_result(ret); + return NULL; + } cond_len = (where != NULL) ? (WHERE_COND_CONST_LEN + strlen(where)) : 0; sql_len = DELETE_STMT_CONST_LEN + strlen(data_id) + cond_len + 1; @@ -2556,6 +2569,7 @@ EXPORT_API char *data_control_provider_create_update_statement( int sql_len; char *sql; int row_count = bundle_get_count(update_map); + int ret; if (provider == NULL || row_count == 0) { set_last_result(DATA_CONTROL_ERROR_INVALID_PARAMETER); @@ -2587,7 +2601,14 @@ EXPORT_API char *data_control_provider_create_update_statement( index = 0; bundle_foreach(update_map, bundle_foreach_cb, (void *)(cols)); - _get_data_id(provider, &data_id); + ret = _get_data_id(provider, &data_id); + if (ret != DATA_CONTROL_ERROR_NONE) { + free(cols->keys); + free(cols->vals); + free(cols); + set_last_result(ret); + return NULL; + } cond_len = (where != NULL) ? (WHERE_COND_CONST_LEN + strlen(where)) : 0; sql_len = UPDATE_STMT_CONST_LEN + strlen(data_id) + (cols->length) + @@ -2648,6 +2669,7 @@ EXPORT_API char *data_control_provider_create_select_statement( int order_len; int sql_len; char *sql; + int ret; if (provider == NULL) { set_last_result(DATA_CONTROL_ERROR_INVALID_PARAMETER); @@ -2664,7 +2686,11 @@ EXPORT_API char *data_control_provider_create_select_statement( col_name_length = 1; } - _get_data_id(provider, &data_id); + ret = _get_data_id(provider, &data_id); + if (ret != DATA_CONTROL_ERROR_NONE) { + set_last_result(ret); + return NULL; + } cond_len = (where != NULL) ? (WHERE_COND_CONST_LEN + strlen(where)) : 0; order_len = (order != NULL) ? (ORDER_CLS_CONST_LEN + strlen(order)) : 0; -- 2.7.4