Fix coverity issue 51/223251/1 accepted/tizen/unified/20200130.214553 submit/tizen/20200128.051542
authorBoram Bae <boram21.bae@samsung.com>
Tue, 28 Jan 2020 04:10:07 +0000 (13:10 +0900)
committerBoram Bae <boram21.bae@samsung.com>
Tue, 28 Jan 2020 04:10:07 +0000 (13:10 +0900)
Change-Id: I5418fd4563bad87b89ccf5a013e9a6d6fa23cdf8
Signed-off-by: Boram Bae <boram21.bae@samsung.com>
src/fusion-sensor/rotation_vector/fusion_utils/orientation_filter.cpp
src/fusion-sensor/rotation_vector/fusion_utils/sensor_data.h
src/sensorctl/info.cpp
src/sensorctl/sensor_adapter.cpp
src/sensorctl/test_bench.h
src/sensorctl/testcase/sensor_listener.cpp
src/server/server_channel_handler.cpp
src/shared/message.h

index 43ea867..a725093 100644 (file)
@@ -64,7 +64,6 @@ orientation_filter<TYPE>::orientation_filter()
        m_var_pitch = vec;
        m_var_azimuth = vec;
 
-       m_gyro.m_time_stamp = 0;
 }
 
 template <typename TYPE>
index f266760..151d655 100644 (file)
@@ -29,7 +29,7 @@ template <typename TYPE>
 class sensor_data {
 public:
        vect<TYPE, SENSOR_DATA_SIZE> 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,
index 149b98c..c5c25d4 100644 (file)
@@ -20,6 +20,7 @@
 #include "info.h"
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <glib.h>
 #include <sensor_internal.h>
 
@@ -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;
 }
 
index 979db25..2af7398 100644 (file)
@@ -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;
 }
index 4e04b85..9f51622 100644 (file)
@@ -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)
index 517d0cc..ac3b12f 100644 (file)
@@ -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);
index 1be2686..3bec9cc 100644 (file)
@@ -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;
index 0d932b6..d9ac2eb 100644 (file)
 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 {