diff options
author | Vladimir Kobal <vlad@prokk.net> | 2020-11-09 19:14:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-09 19:14:48 +0200 |
commit | 3d778524ca581174c288135fd6c1ea556d88dd77 (patch) | |
tree | 993cdea7fcb89cdc30ed8d072c08ebe9921dc5d0 /exporting | |
parent | 5fcfe4eb2971af24c466f2460f31de6e867a6ae0 (diff) |
Fix coverity issues (#10216)
Diffstat (limited to 'exporting')
-rw-r--r-- | exporting/init_connectors.c | 6 | ||||
-rw-r--r-- | exporting/send_data.c | 35 | ||||
-rw-r--r-- | exporting/tests/test_exporting_engine.c | 2 |
3 files changed, 25 insertions, 18 deletions
diff --git a/exporting/init_connectors.c b/exporting/init_connectors.c index 57ac030d9a..6aff263549 100644 --- a/exporting/init_connectors.c +++ b/exporting/init_connectors.c @@ -115,6 +115,12 @@ void simple_connector_init(struct instance *instance) struct simple_connector_data *connector_specific_data = (struct simple_connector_data *)instance->connector_specific_data; + if (connector_specific_data->first_buffer) + return; + + connector_specific_data->header = buffer_create(0); + connector_specific_data->buffer = buffer_create(0); + // create a ring buffer struct simple_connector_buffer *first_buffer = NULL; diff --git a/exporting/send_data.c b/exporting/send_data.c index 1618c1bc09..11c93c5097 100644 --- a/exporting/send_data.c +++ b/exporting/send_data.c @@ -253,9 +253,6 @@ void simple_connector_worker(void *instance_p) .tv_usec = (instance->config.timeoutms * 1000) % 1000000 }; int failures = 0; - BUFFER *spare_header = buffer_create(0); - BUFFER *spare_buffer = buffer_create(0); - while (!instance->engine->exit) { struct stats *stats = &instance->stats; int send_stats = 0; @@ -279,32 +276,28 @@ void simple_connector_worker(void *instance_p) // ------------------------------------------------------------------------ // detach buffer - BUFFER *header; - BUFFER *buffer; size_t buffered_metrics; if (!connector_specific_data->previous_buffer || (connector_specific_data->previous_buffer == connector_specific_data->first_buffer && connector_specific_data->first_buffer->used == 1)) { - connector_specific_data->header = connector_specific_data->first_buffer->header; - connector_specific_data->buffer = connector_specific_data->first_buffer->buffer; + BUFFER *header, *buffer; + + header = connector_specific_data->first_buffer->header; + buffer = connector_specific_data->first_buffer->buffer; connector_specific_data->buffered_metrics = connector_specific_data->first_buffer->buffered_metrics; connector_specific_data->buffered_bytes = connector_specific_data->first_buffer->buffered_bytes; - header = connector_specific_data->header; - buffer = connector_specific_data->buffer; buffered_metrics = connector_specific_data->buffered_metrics; - buffer_flush(spare_header); - connector_specific_data->first_buffer->header = spare_header; - spare_header = header; + buffer_flush(connector_specific_data->header); + connector_specific_data->first_buffer->header = connector_specific_data->header; + connector_specific_data->header = header; - buffer_flush(spare_buffer); - connector_specific_data->first_buffer->buffer = spare_buffer; - spare_buffer = buffer; + buffer_flush(connector_specific_data->buffer); + connector_specific_data->first_buffer->buffer = connector_specific_data->buffer; + connector_specific_data->buffer = buffer; } else { - header = connector_specific_data->header; - buffer = connector_specific_data->buffer; buffered_metrics = connector_specific_data->buffered_metrics; } @@ -385,7 +378,13 @@ void simple_connector_worker(void *instance_p) failures = 0; if (likely(sock != -1)) { - simple_connector_send_buffer(&sock, &failures, instance, header, buffer, buffered_metrics); + simple_connector_send_buffer( + &sock, + &failures, + instance, + connector_specific_data->header, + connector_specific_data->buffer, + buffered_metrics); } else { error("EXPORTING: failed to update '%s'", instance->config.destination); stats->transmission_failures++; diff --git a/exporting/tests/test_exporting_engine.c b/exporting/tests/test_exporting_engine.c index befc2b882b..d90b4e352f 100644 --- a/exporting/tests/test_exporting_engine.c +++ b/exporting/tests/test_exporting_engine.c @@ -609,6 +609,8 @@ static void test_simple_connector_worker(void **state) instance->connector_specific_data = simple_connector_data; simple_connector_data->last_buffer = callocz(1, sizeof(struct simple_connector_buffer)); simple_connector_data->first_buffer = simple_connector_data->last_buffer; + simple_connector_data->header = buffer_create(0); + simple_connector_data->buffer = buffer_create(0); simple_connector_data->last_buffer->header = buffer_create(0); simple_connector_data->last_buffer->buffer = buffer_create(0); |