From 3374186d411ee2e3228dc7c721e4ce4298d29f9d Mon Sep 17 00:00:00 2001 From: Boram Bae Date: Tue, 28 Jan 2020 13:10:07 +0900 Subject: [PATCH] Fix coverity issue Change-Id: I5418fd4563bad87b89ccf5a013e9a6d6fa23cdf8 Signed-off-by: Boram Bae --- .../rotation_vector/fusion_utils/orientation_filter.cpp | 1 - .../rotation_vector/fusion_utils/sensor_data.h | 2 +- src/sensorctl/info.cpp | 3 ++- src/sensorctl/sensor_adapter.cpp | 15 +++++++++++++-- src/sensorctl/test_bench.h | 3 +++ src/sensorctl/testcase/sensor_listener.cpp | 8 ++++++++ src/server/server_channel_handler.cpp | 2 -- src/shared/message.h | 10 +++++----- 8 files changed, 32 insertions(+), 12 deletions(-) diff --git a/src/fusion-sensor/rotation_vector/fusion_utils/orientation_filter.cpp b/src/fusion-sensor/rotation_vector/fusion_utils/orientation_filter.cpp index 43ea867..a725093 100644 --- a/src/fusion-sensor/rotation_vector/fusion_utils/orientation_filter.cpp +++ b/src/fusion-sensor/rotation_vector/fusion_utils/orientation_filter.cpp @@ -64,7 +64,6 @@ orientation_filter::orientation_filter() m_var_pitch = vec; m_var_azimuth = vec; - m_gyro.m_time_stamp = 0; } template diff --git a/src/fusion-sensor/rotation_vector/fusion_utils/sensor_data.h b/src/fusion-sensor/rotation_vector/fusion_utils/sensor_data.h index f266760..151d655 100644 --- a/src/fusion-sensor/rotation_vector/fusion_utils/sensor_data.h +++ b/src/fusion-sensor/rotation_vector/fusion_utils/sensor_data.h @@ -29,7 +29,7 @@ template class sensor_data { public: vect m_data; - unsigned long long m_time_stamp; + unsigned long long m_time_stamp { 0 }; sensor_data(); sensor_data(const TYPE x, const TYPE y, const TYPE z, diff --git a/src/sensorctl/info.cpp b/src/sensorctl/info.cpp index 149b98c..c5c25d4 100644 --- a/src/sensorctl/info.cpp +++ b/src/sensorctl/info.cpp @@ -20,6 +20,7 @@ #include "info.h" #include +#include #include #include @@ -44,7 +45,7 @@ bool info_manager::run(int argc, char *argv[]) sensord_get_sensor_list(type, &sensors, &count); show_info(sensors, count); - delete sensors; + free(sensors); return true; } diff --git a/src/sensorctl/sensor_adapter.cpp b/src/sensorctl/sensor_adapter.cpp index 979db25..2af7398 100644 --- a/src/sensorctl/sensor_adapter.cpp +++ b/src/sensorctl/sensor_adapter.cpp @@ -55,30 +55,39 @@ bool sensor_adapter::get_handle(sensor_info info, int &handle) { int err; int count; - sensor_t *sensors; + sensor_t *sensors = NULL; err = sensord_get_sensors(info.type, &sensors, &count); ASSERT_EQ(err, 0); handle = sensord_connect(sensors[info.index]); + ASSERT_FREE((handle < 0), sensors); ASSERT_GE(handle, 0); + free(sensors); + sensors = NULL; + return true; } bool sensor_adapter::start(sensor_info info, int &handle) { - sensor_t *sensors; + sensor_t *sensors = NULL; int count; int err; bool ret; err = sensord_get_sensors(info.type, &sensors, &count); ASSERT_EQ(err, 0); + + ASSERT_FREE((info.index >= count), sensors); ASSERT_LT(info.index, count); + + ASSERT_FREE((info.index < 0), sensors); ASSERT_GE(info.index, 0); handle = sensord_connect(sensors[info.index]); + ASSERT_FREE((handle < 0), sensors); ASSERT_GE(handle, 0); if (is_batch_mode) { @@ -89,9 +98,11 @@ bool sensor_adapter::start(sensor_info info, int &handle) ASSERT_TRUE(ret); ret = sensord_start(handle, info.powersave); + ASSERT_FREE((ret != true), sensors); ASSERT_TRUE(ret); free(sensors); + sensors = NULL; return true; } diff --git a/src/sensorctl/test_bench.h b/src/sensorctl/test_bench.h index 4e04b85..9f51622 100644 --- a/src/sensorctl/test_bench.h +++ b/src/sensorctl/test_bench.h @@ -67,6 +67,9 @@ do { \ } \ } while (0) +#define ASSERT_FREE(expr, X) \ + do { if (expr) { free (X); X = NULL; } } while (0) + #define ASSERT_TRUE(condition) ASSERT(condition, ==, true) #define ASSERT_FALSE(condition) ASSERT(condition, ==, false) #define ASSERT_EQ(left, right) ASSERT(left, ==, right) diff --git a/src/sensorctl/testcase/sensor_listener.cpp b/src/sensorctl/testcase/sensor_listener.cpp index 517d0cc..ac3b12f 100644 --- a/src/sensorctl/testcase/sensor_listener.cpp +++ b/src/sensorctl/testcase/sensor_listener.cpp @@ -59,6 +59,7 @@ TESTCASE(sensor_listener, get_sensors_p_1) err = sensord_get_sensors(ACCELEROMETER_SENSOR, &sensors, &count); ASSERT_EQ(err, 0); + ASSERT_FREE((count < 0), sensors); ASSERT_GT(count, 0); free(sensors); @@ -105,26 +106,33 @@ TESTCASE(sensor_listener, all_api_p_1) ASSERT_EQ(err, 0); ret = sensord_register_event(handle, 1, 100, 100, event_cb, NULL); + ASSERT_FREE(((ret != true) && list), list); ASSERT_TRUE(ret); ret = sensord_start(handle, 0); + ASSERT_FREE(((ret != true) && list), list); ASSERT_TRUE(ret); ret = sensord_change_event_interval(handle, 0, 100); + ASSERT_FREE(((ret != true) && list), list); ASSERT_TRUE(ret); ret = sensord_change_event_max_batch_latency(handle, 0, 100); + ASSERT_FREE(((ret != true) && list), list); ASSERT_TRUE(ret); mainloop::run(); ret = sensord_stop(handle); + ASSERT_FREE(((ret != true) && list), list); ASSERT_TRUE(ret); ret = sensord_unregister_event(handle, 1); + ASSERT_FREE(((ret != true) && list), list); ASSERT_TRUE(ret); ret = sensord_disconnect(handle); + ASSERT_FREE(((ret != true) && list), list); ASSERT_TRUE(ret); free(list); diff --git a/src/server/server_channel_handler.cpp b/src/server/server_channel_handler.cpp index 1be2686..3bec9cc 100644 --- a/src/server/server_channel_handler.cpp +++ b/src/server/server_channel_handler.cpp @@ -222,8 +222,6 @@ int server_channel_handler::listener_set_attr_int(channel *ch, message &msg) -EACCES, "Permission denied[%d, %s]", id, m_listeners[id]->get_required_privileges().c_str()); - bool need_notify = false; - switch (buf.attribute) { case SENSORD_ATTRIBUTE_INTERVAL: ret = m_listeners[id]->set_interval(buf.value); break; diff --git a/src/shared/message.h b/src/shared/message.h index 0d932b6..d9ac2eb 100644 --- a/src/shared/message.h +++ b/src/shared/message.h @@ -30,11 +30,11 @@ namespace ipc { typedef struct message_header { - uint64_t id; - uint32_t type; - size_t length; - int32_t err; - void *ancillary[MAX_HEADER_RESERVED]; + uint64_t id { 0 }; + uint32_t type { 0 }; + size_t length { 0 }; + int32_t err { 0 }; + void *ancillary[MAX_HEADER_RESERVED] { nullptr }; } message_header; class message { -- 2.7.4