[Coverity Issue Fixes] 10/173610/7 accepted/tizen/unified/20180403.060147 submit/tizen/20180402.084314
authorAbhishek Vijay <abhishek.v@samsung.com>
Thu, 22 Mar 2018 13:14:25 +0000 (18:44 +0530)
committerAbhishek Vijay <abhishek.v@samsung.com>
Thu, 29 Mar 2018 09:29:30 +0000 (14:59 +0530)
Signed-off-by: Abhishek Vijay <abhishek.v@samsung.com>
Change-Id: Id8deb54c5e92b85de2b706f2bd7a7072b5666226

src/sensor/rotation_vector/fusion_utils/orientation_filter.cpp
src/sensor/rotation_vector/fusion_utils/orientation_filter.h
src/sensorctl/info.cpp
src/sensorctl/injector.h
src/sensorctl/sensor_adapter.cpp
src/sensorctl/sensorctl.cpp
src/sensorctl/test_bench.h
src/sensorctl/testcase/sensor_listener.cpp
src/sensorctl/testcase/sensor_provider.cpp
src/server/server_channel_handler.cpp
src/shared/message.cpp

index 43ea867..2b03cf0 100644 (file)
@@ -65,6 +65,7 @@ orientation_filter<TYPE>::orientation_filter()
        m_var_azimuth = vec;
 
        m_gyro.m_time_stamp = 0;
+       m_gyro_dt = 0;
 }
 
 template <typename TYPE>
index eaea224..5c5e6b9 100644 (file)
@@ -89,6 +89,4 @@ public:
                        const sensor_data<TYPE> *gyro, const sensor_data<TYPE> *magnetic);
 };
 
-#include "orientation_filter.cpp"
-
 #endif /* _ORIENTATION_FILTER_H_ */
index 149b98c..43b73f1 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,10 @@ bool info_manager::run(int argc, char *argv[])
        sensord_get_sensor_list(type, &sensors, &count);
        show_info(sensors, count);
 
-       delete sensors;
+       if (sensors) {
+               free(sensors);
+               sensors = NULL;
+       }
        return true;
 }
 
index b487c91..1742200 100644 (file)
@@ -39,7 +39,7 @@ public:
        virtual bool teardown(void) { return true; }
 
        const std::string& name() const { return m_name; }
-       const sensor_type_t type() const { return m_type; }
+       sensor_type_t type() { return m_type; }
 
        virtual bool inject(int argc, char *argv[]) = 0;
 
index 13bc4e5..7deec68 100644 (file)
@@ -66,26 +66,34 @@ bool sensor_adapter::get_handle(sensor_info info, int &handle)
 
 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);
 
        ret = sensord_register_event(handle, SENSOR_EVENT(info.type), info.interval, info.batch_latency, info.cb, NULL);
+       ASSERT_FREE((ret != true), sensors);
        ASSERT_TRUE(ret);
 
        ret = sensord_start(handle, info.powersave);
+       ASSERT_FREE((ret != true), sensors);
        ASSERT_TRUE(ret);
 
        free(sensors);
+       sensors = NULL;
 
        return true;
 }
index a35e286..415960f 100644 (file)
@@ -47,11 +47,11 @@ static sensor_manager *create_manager(char *command)
 
        if (!strcmp(command, "test"))
                manager = new(std::nothrow) tester_manager;
-       if (!strcmp(command, "inject"))
+       else if (!strcmp(command, "inject"))
                manager = new(std::nothrow) injector_manager;
-       if (!strcmp(command, "info"))
+       else if (!strcmp(command, "info"))
                manager = new(std::nothrow) info_manager;
-       if (!strcmp(command, "loopback"))
+       else if (!strcmp(command, "loopback"))
                manager = new(std::nothrow) loopback_manager;
 
        if (!manager) {
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 ebff117..4626507 100644 (file)
@@ -90,8 +90,8 @@ TESTCASE(sensor_listener, all_api_p_1)
        bool ret;
        int handle;
        sensor_t sensor;
-       sensor_t *list;
-       int count;
+       sensor_t *list = NULL;
+       int count = 0;
 
        called = false;
 
@@ -102,29 +102,37 @@ TESTCASE(sensor_listener, all_api_p_1)
        ASSERT_EQ(err, 0);
 
        handle = sensord_connect(sensor);
-       ASSERT_EQ(err, 0);
+       ASSERT_FREE(((handle != 0) && list), list);
+       ASSERT_EQ(handle, 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 9c76c21..a163325 100644 (file)
@@ -86,8 +86,8 @@ static void add_mysensor(void)
        sensord_provider_set_resolution(provider, 0.01f);
 
        sensord_add_provider(provider);
-
        sensord_remove_provider(provider);
+
        sensord_destroy_provider(provider);
 }
 
index ff66ec3..149c32e 100644 (file)
@@ -141,13 +141,18 @@ int server_channel_handler::listener_connect(channel *ch, message &msg)
 
        msg.disclose((char *)&buf);
 
-       sensor_listener_proxy *listener;
+       sensor_listener_proxy *listener = NULL;
        listener = new(std::nothrow) sensor_listener_proxy(listener_id,
                                buf.sensor, m_manager, ch);
        retvm_if(!listener, OP_ERROR, "Failed to allocate memory");
-       retvm_if(!has_privileges(ch->get_fd(), listener->get_required_privileges()),
-                       -EACCES, "Permission denied[%d, %s]",
-                       listener_id, m_listeners[listener_id]->get_required_privileges().c_str());
+
+       if (!has_privileges(ch->get_fd(), listener->get_required_privileges())) {
+               delete listener;
+               listener = NULL;
+               _E("Permission denied[%d, %s]", listener_id,
+                       m_listeners[listener_id]->get_required_privileges().c_str());
+               return -EACCES;
+       }
 
        buf.listener_id = listener_id;
 
@@ -155,8 +160,10 @@ int server_channel_handler::listener_connect(channel *ch, message &msg)
        reply.enclose((const char *)&buf, sizeof(buf));
        reply.header()->err = OP_SUCCESS;
 
-       if (!ch->send_sync(&reply))
+       if (!ch->send_sync(&reply)) {
+               delete listener;
                return OP_ERROR;
+       }
 
        _I("Connected sensor_listener[fd(%d) -> id(%u)]", ch->get_fd(), listener_id);
        m_listeners[listener_id] = listener;
index d7455eb..6bffc8c 100644 (file)
@@ -38,6 +38,9 @@ message::message(size_t capacity)
        m_header.type = UNDEFINED_TYPE;
        m_header.length = m_size;
        m_header.err = 0;
+
+       for (int i = 0; i < MAX_HEADER_RESERVED; ++i)
+               m_header.ancillary[i] = NULL;
 }
 
 message::message(const void *msg, size_t sz)
@@ -50,6 +53,9 @@ message::message(const void *msg, size_t sz)
        m_header.type = UNDEFINED_TYPE;
        m_header.length = m_size;
        m_header.err = 0;
+
+       for (int i = 0; i < MAX_HEADER_RESERVED; ++i)
+               m_header.ancillary[i] = NULL;
 }
 
 message::message(const message &msg)
@@ -72,6 +78,9 @@ message::message(int error)
        m_header.type = UNDEFINED_TYPE;
        m_header.length = 0;
        m_header.err = error;
+
+       for (int i = 0; i < MAX_HEADER_RESERVED; ++i)
+               m_header.ancillary[i] = NULL;
 }
 
 message::~message()