Fix coverity issues (#10216)
Vladimir Kobal committed
Nov 9, 2020 at 19:14 UTC
3d778524ca581174c288135fd6c1ea556d88dd77
3 files changed
+25
-18
exporting/init_connectors.c
+6
@@ -115,6 +115,12 @@ void simple_connector_init(struct instance *instance)
115
struct simple_connector_data *connector_specific_data =
116
(struct simple_connector_data *)instance->connector_specific_data;
117
118
+ if (connector_specific_data->first_buffer)
119
+ return;
120
+
121
+ connector_specific_data->header = buffer_create(0);
122
+ connector_specific_data->buffer = buffer_create(0);
123
+
124
// create a ring buffer
125
struct simple_connector_buffer *first_buffer = NULL;
126
exporting/send_data.c
+17
-18
@@ -253,9 +253,6 @@ void simple_connector_worker(void *instance_p)
253
.tv_usec = (instance->config.timeoutms * 1000) % 1000000 };
254
int failures = 0;
255
256
- BUFFER *spare_header = buffer_create(0);
257
- BUFFER *spare_buffer = buffer_create(0);
258
-
256
while (!instance->engine->exit) {
257
struct stats *stats = &instance->stats;
258
int send_stats = 0;
@@ -279,32 +276,28 @@ void simple_connector_worker(void *instance_p)
276
// ------------------------------------------------------------------------
277
// detach buffer
278
282
- BUFFER *header;
283
- BUFFER *buffer;
279
size_t buffered_metrics;
280
281
if (!connector_specific_data->previous_buffer ||
282
(connector_specific_data->previous_buffer == connector_specific_data->first_buffer &&
283
connector_specific_data->first_buffer->used == 1)) {
289
- connector_specific_data->header = connector_specific_data->first_buffer->header;
290
- connector_specific_data->buffer = connector_specific_data->first_buffer->buffer;
284
+ BUFFER *header, *buffer;
285
+
286
+ header = connector_specific_data->first_buffer->header;
287
+ buffer = connector_specific_data->first_buffer->buffer;
288
connector_specific_data->buffered_metrics = connector_specific_data->first_buffer->buffered_metrics;
289
connector_specific_data->buffered_bytes = connector_specific_data->first_buffer->buffered_bytes;
290
294
- header = connector_specific_data->header;
295
- buffer = connector_specific_data->buffer;
291
buffered_metrics = connector_specific_data->buffered_metrics;
292
298
- buffer_flush(spare_header);
299
- connector_specific_data->first_buffer->header = spare_header;
300
- spare_header = header;
293
+ buffer_flush(connector_specific_data->header);
294
+ connector_specific_data->first_buffer->header = connector_specific_data->header;
295
+ connector_specific_data->header = header;
296
302
- buffer_flush(spare_buffer);
303
- connector_specific_data->first_buffer->buffer = spare_buffer;
304
- spare_buffer = buffer;
297
+ buffer_flush(connector_specific_data->buffer);
298
+ connector_specific_data->first_buffer->buffer = connector_specific_data->buffer;
299
+ connector_specific_data->buffer = buffer;
300
} else {
306
- header = connector_specific_data->header;
307
- buffer = connector_specific_data->buffer;
301
buffered_metrics = connector_specific_data->buffered_metrics;
302
}
303
@@ -385,7 +378,13 @@ void simple_connector_worker(void *instance_p)
378
failures = 0;
379
380
if (likely(sock != -1)) {
388
- simple_connector_send_buffer(&sock, &failures, instance, header, buffer, buffered_metrics);
381
+ simple_connector_send_buffer(
382
+ &sock,
383
+ &failures,
384
+ instance,
385
+ connector_specific_data->header,
386
+ connector_specific_data->buffer,
387
+ buffered_metrics);
388
} else {
389
error("EXPORTING: failed to update '%s'", instance->config.destination);
390
stats->transmission_failures++;
exporting/tests/test_exporting_engine.c
+2
@@ -609,6 +609,8 @@ static void test_simple_connector_worker(void **state)
609
instance->connector_specific_data = simple_connector_data;
610
simple_connector_data->last_buffer = callocz(1, sizeof(struct simple_connector_buffer));
611
simple_connector_data->first_buffer = simple_connector_data->last_buffer;
612
+ simple_connector_data->header = buffer_create(0);
613
+ simple_connector_data->buffer = buffer_create(0);
614
simple_connector_data->last_buffer->header = buffer_create(0);
615
simple_connector_data->last_buffer->buffer = buffer_create(0);
616