Additional checks to address coverity report (#11429)
Stelios Fragkakis committed
Aug 12, 2021 at 18:12 UTC
e8b337d9a5dde0aa860d84093ba2df30fd7238e1
1 file changed
+10
-14
database/sqlite/sqlite_aclk.c
+10
-14
@@ -10,11 +10,6 @@
10
11
const char *aclk_sync_config[] = {
12
NULL,
13
- "CREATE TABLE IF NOT EXISTS delete_dimension(host_id, chart_id, dim_id, chart_name, dimension_id, dimension_name);"
14
- "CREATE TRIGGER IF NOT EXISTS tr_del_dim AFTER DELETE ON dimension " \
15
- "BEGIN INSERT INTO delete_dimension (host_id, chart_id, dim_id, chart_name, dimension_id, dimension_name) " \
16
- "SELECT c.host_id, c.chart_id, old.dim_id, c.type||'.'||c.id, old.id, old.name from chart c where c.chart_id = old.chart_id; end;",
17
- NULL
13
};
14
15
int aclk_architecture = 0;
@@ -150,6 +145,7 @@ struct aclk_database_cmd aclk_database_deq_cmd(struct aclk_database_worker_confi
145
uv_mutex_lock(&wc->cmd_mutex);
146
queue_size = wc->queue_size;
147
if (queue_size == 0) {
148
+ memset(&ret, 0, sizeof(ret));
149
ret.opcode = ACLK_DATABASE_NOOP;
150
ret.completion = NULL;
151
} else {
@@ -238,13 +234,12 @@ static void timer_cb(uv_timer_t* handle)
234
uv_update_time(handle->loop);
235
236
struct aclk_database_cmd cmd;
237
+ memset(&cmd, 0, sizeof(cmd));
238
cmd.opcode = ACLK_DATABASE_TIMER;
242
- cmd.completion = NULL;
239
aclk_database_enq_cmd_noblock(wc, &cmd);
240
241
if (wc->cleanup_after && wc->cleanup_after < now_realtime_sec()) {
242
cmd.opcode = ACLK_DATABASE_CLEANUP;
247
- cmd.completion = NULL;
243
if (!aclk_database_enq_cmd_noblock(wc, &cmd))
244
wc->cleanup_after += ACLK_DATABASE_CLEANUP_INTERVAL;
245
}
@@ -252,7 +247,6 @@ static void timer_cb(uv_timer_t* handle)
247
if (wc->chart_updates) {
248
cmd.opcode = ACLK_DATABASE_PUSH_CHART;
249
cmd.count = ACLK_MAX_CHART_BATCH;
255
- cmd.completion = NULL;
250
cmd.param1 = ACLK_MAX_CHART_BATCH_COUNT;
251
aclk_database_enq_cmd_noblock(wc, &cmd);
252
}
@@ -260,7 +254,6 @@ static void timer_cb(uv_timer_t* handle)
254
if (wc->alert_updates) {
255
cmd.opcode = ACLK_DATABASE_PUSH_ALERT;
256
cmd.count = ACLK_MAX_ALERT_UPDATES;
263
- cmd.completion = NULL;
257
aclk_database_enq_cmd_noblock(wc, &cmd);
258
}
259
}
@@ -810,8 +803,8 @@ static int sql_check_aclk_table(void *data, int argc, char **argv, char **column
803
804
debug(D_ACLK_SYNC,"Scheduling aclk sync table check for node %s", (char *) argv[0]);
805
struct aclk_database_cmd cmd;
806
+ memset(&cmd, 0, sizeof(cmd));
807
cmd.opcode = ACLK_DATABASE_DELETE_HOST;
814
- cmd.completion = NULL;
808
cmd.data = strdupz((char *) argv[0]);
809
aclk_database_enq_cmd_noblock(wc, &cmd);
810
return 0;
@@ -822,8 +815,13 @@ static int sql_check_aclk_table(void *data, int argc, char **argv, char **column
815
816
void sql_check_aclk_table_list(struct aclk_database_worker_config *wc)
817
{
818
+ char *err_msg = NULL;
819
debug(D_ACLK_SYNC,"Cleaning tables for nodes that do not exist");
826
- (int) sqlite3_exec(db_meta, SQL_SELECT_ACLK_ACTIVE_LIST, sql_check_aclk_table, (void *) wc, NULL);
820
+ int rc = sqlite3_exec(db_meta, SQL_SELECT_ACLK_ACTIVE_LIST, sql_check_aclk_table, (void *) wc, &err_msg);
821
+ if (rc != SQLITE_OK) {
822
+ error_report("Query failed when trying to check for obsolete ACLK sync tables, %s", err_msg);
823
+ sqlite3_free(err_msg);
824
+ }
825
return;
826
}
827
@@ -833,10 +831,8 @@ void aclk_data_rotated(RRDHOST *host)
831
832
debug(D_ACLK_SYNC,"Processing data base rotation event");
833
struct aclk_database_cmd cmd;
834
+ memset(&cmd, 0, sizeof(cmd));
835
cmd.opcode = ACLK_DATABASE_UPD_STATS;
837
- cmd.data = NULL;
838
- cmd.count = 0;
839
- cmd.completion = NULL;
836
837
rrd_wrlock();
838
RRDHOST *this_host = localhost;