ret = sqlite3_prepare_v2(db_handle, sql, -1, &stmt, NULL);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "[ERROR] sqlite3_prepare_v2: %s", sqlite3_errmsg(db_handle));
+ free(sql);
+ sql = NULL;
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_int(stmt, 1, (int)type);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_finalize(stmt);
+ free(sql);
+ sql = NULL;
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_text(stmt, 2, appid, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
+ free(sql);
+ sql = NULL;
return VC_DB_ERROR_OPERATION_FAILED;
}
SLOG(LOG_DEBUG, vc_db_tag(), "[SQL] DELETE FROM vc_info WHERE type = %d AND appid = %s", type, appid);
ret = sqlite3_bind_int(stmt, 2, pid);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
+ free(sql);
+ sql = NULL;
return VC_DB_ERROR_OPERATION_FAILED;
}
SLOG(LOG_DEBUG, vc_db_tag(), "[SQL] DELETE FROM vc_info WHERE type = %d AND pid = %d", type, pid);
ret = sqlite3_step(stmt);
if (ret != SQLITE_DONE) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_step: fail returned, sql(%s), ret(%d), err(%s)", sql, ret, sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
+ free(sql);
+ sql = NULL;
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_int(stmt, 2, pid);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: err(%s)", sqlite3_errmsg(db_handle));
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_int(stmt, 3, cmd->type);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: err(%s)", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_int(stmt, 4, cmd->format);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: err(%s)", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_int(stmt, 5, cmd->domain);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: err(%s)", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_text(stmt, 6, cmd->command, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_text: err(%s)", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_text(stmt, 8, cmd->appid, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_text: err(%s)", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
if (VC_COMMAND_TYPE_BACKGROUND == type && NULL != cmd->invocation_name) {
ret = sqlite3_bind_text(stmt, 9, cmd->invocation_name, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_text: err(%s)", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
}
ret = sqlite3_bind_text(stmt, 10, cmd->fixed, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_text: err(%s)", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_step(stmt);
if (ret != SQLITE_DONE) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_step: fail returned %d, %s", ret, sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_int(stmt, 1, (int)type);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_finalize(stmt);
+ free(sql);
+ sql = NULL;
return VC_DB_ERROR_OPERATION_FAILED;
}
if (VC_COMMAND_TYPE_BACKGROUND != type) {
ret = sqlite3_bind_int(stmt, 2, pid);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
+ free(sql);
+ sql = NULL;
return VC_DB_ERROR_OPERATION_FAILED;
}
}
ret = sqlite3_step(stmt);
if (ret == SQLITE_DONE) {
SLOG(LOG_DEBUG, vc_db_tag(), "No matched commands");
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
+ free(sql);
+ sql = NULL;
return VC_DB_ERROR_NONE;
}
free(appid);
appid = NULL;
}
+ sqlite3_reset(stmt);
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
+ free(sql);
+ sql = NULL;
return VC_DB_ERROR_OUT_OF_MEMORY;
}
ret = sqlite3_bind_text(stmt, 2, result_text, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_text: %s", sqlite3_errmsg(db_handle));
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_int(stmt, 3, event);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_text(stmt, 4, msg, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_text: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_int(stmt, 5, exclusive);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_step(stmt);
if (ret != SQLITE_DONE) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_step: fail returned %d, %s", ret, sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
sqlite3_reset(stmt);
ret = sqlite3_bind_int(stmt, 6, cmd->pid);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_int(stmt, 7, cmd->type);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_int(stmt, 8, cmd->format);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_int(stmt, 9, cmd->domain);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_text(stmt, 10, cmd->command, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_text: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_text(stmt, 11, cmd->parameter, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_text: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_text(stmt, 12, cmd->appid, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_text: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_text(stmt, 13, cmd->invocation_name, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_text: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_text(stmt, 14, cmd->fixed, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_text: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_step(stmt);
if (ret != SQLITE_DONE) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_step: fail returned %d, %s", ret, sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_prepare_v2(db_handle, sql, -1, &stmt, NULL);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "[ERROR] sqlite3_prepare_v2: %s", sqlite3_errmsg(db_handle));
+ free(sql);
+ sql = NULL;
return VC_DB_ERROR_OPERATION_FAILED;
}
if (NULL != appid) {
ret = sqlite3_bind_text(stmt, 1, appid, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_finalize(stmt);
+ free(sql);
+ sql = NULL;
return VC_DB_ERROR_OPERATION_FAILED;
}
} else if (-1 != pid) {
ret = sqlite3_bind_int(stmt, 1, pid);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_finalize(stmt);
+ free(sql);
+ sql = NULL;
return VC_DB_ERROR_OPERATION_FAILED;
}
}
ret = sqlite3_step(stmt);
if (ret == SQLITE_DONE) {
SLOG(LOG_DEBUG, vc_db_tag(), "No matched commands");
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
+ free(sql);
+ sql = NULL;
return VC_DB_ERROR_NONE;
}
free(*msg);
*msg = NULL;
}
+
+ sqlite3_reset(stmt);
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
+ free(sql);
+ sql = NULL;
return -1;
}
*msg = NULL;
}
+ sqlite3_reset(stmt);
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
+ free(sql);
+ sql = NULL;
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_int(stmt, 1, VC_COMMAND_TYPE_BACKGROUND);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_text(stmt, 2, result, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
SLOG(LOG_DEBUG, vc_db_tag(), "[SQL] SELECT * FROM vc_result WHERE type = 2 and result = %s", result);
ret = sqlite3_step(stmt);
if (ret == SQLITE_DONE) {
SLOG(LOG_DEBUG, vc_db_tag(), "No matched commands");
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_NONE;
}
temp_app = (vc_deactivated_app_s*)calloc(1, sizeof(vc_deactivated_app_s));
if (NULL == temp_app) {
SLOG(LOG_ERROR, vc_db_tag(), "[ERROR] memory allcation fail");
+
+ if (NULL != temp_app_list) {
+ g_slist_free_full(temp_app_list, free);
+ temp_app_list = NULL;
+ }
+
+ sqlite3_reset(stmt);
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OUT_OF_MEMORY;
}
ret = sqlite3_bind_text(stmt, 1, result, -1, SQLITE_TRANSIENT);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_step(stmt);
if (ret == SQLITE_DONE) {
SLOG(LOG_DEBUG, vc_db_tag(), "No matched commands");
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_NONE;
}
temp_cmd = (vc_cmd_s*)calloc(1, sizeof(vc_cmd_s));
if (NULL == temp_cmd) {
SLOG(LOG_ERROR, vc_db_tag(), "[ERROR] memory allcation fail");
+
+ if (NULL != temp_pid_list) {
+ g_slist_free_full(temp_pid_list, free);
+ temp_pid_list = NULL;
+ }
+
+ sqlite3_reset(stmt);
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OUT_OF_MEMORY;
}
ret = sqlite3_bind_int(stmt, 1, pid);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_bind_int(stmt, 2, type);
if (ret != SQLITE_OK) {
SLOG(LOG_ERROR, vc_db_tag(), "sqlite3_bind_int: %s", sqlite3_errmsg(db_handle));
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}
ret = sqlite3_step(stmt);
if (ret == SQLITE_DONE) {
SLOG(LOG_DEBUG, vc_db_tag(), "No matched commands");
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_NONE;
}
if (0 != vc_cmd_create(&temp_cmd)) {
SLOG(LOG_ERROR, vc_db_tag(), "[ERROR] Fail to create command!!");
+ sqlite3_reset(stmt);
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return -1;
}
temp = sqlite3_column_int(stmt, 0);
SLOG(LOG_DEBUG, vc_db_tag(), "Fail to add command to list");
vc_cmd_destroy(temp_cmd);
vc_cmd_list_destroy(vc_cmd_list, true);
+ sqlite3_reset(stmt);
+ sqlite3_clear_bindings(stmt);
+ sqlite3_finalize(stmt);
return VC_DB_ERROR_OPERATION_FAILED;
}