summaryrefslogtreecommitdiffstats
path: root/exporting
diff options
context:
space:
mode:
authorVladimir Kobal <vlad@prokk.net>2020-11-09 19:14:48 +0200
committerGitHub <noreply@github.com>2020-11-09 19:14:48 +0200
commit3d778524ca581174c288135fd6c1ea556d88dd77 (patch)
tree993cdea7fcb89cdc30ed8d072c08ebe9921dc5d0 /exporting
parent5fcfe4eb2971af24c466f2460f31de6e867a6ae0 (diff)
Fix coverity issues (#10216)
Diffstat (limited to 'exporting')
-rw-r--r--exporting/init_connectors.c6
-rw-r--r--exporting/send_data.c35
-rw-r--r--exporting/tests/test_exporting_engine.c2
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);