Coverity issues Fix:Integrating tizen 5.0 Fixes 19/196819/1 accepted/tizen_4.0_unified tizen_4.0 accepted/tizen/4.0/unified/20190107.145032 submit/tizen_4.0/20190104.101828
authorsrinivasa.m <srinivasa.m@samsung.com>
Fri, 4 Jan 2019 12:06:29 +0000 (17:36 +0530)
committersrinivasa.m <srinivasa.m@samsung.com>
Fri, 4 Jan 2019 12:11:45 +0000 (17:41 +0530)
Change-Id: Id19c9bb54c376afe0558dee179f5fe9e08c65024
Signed-off-by: srinivasa.m <srinivasa.m@samsung.com>
src/sensor/rotation_vector/fusion_utils/orientation_filter.cpp [changed mode: 0644->0755]
src/sensorctl/info.cpp [changed mode: 0644->0755]
src/sensorctl/sensor_adapter.cpp [changed mode: 0644->0755]
src/sensorctl/sensorctl.cpp [changed mode: 0644->0755]
src/sensorctl/test_bench.h [changed mode: 0644->0755]
src/sensorctl/testcase/sensor_listener.cpp [changed mode: 0644->0755]
src/sensorctl/testcase/sensor_provider.cpp [changed mode: 0644->0755]
src/server/server_channel_handler.cpp [changed mode: 0644->0755]
src/shared/message.cpp

old mode 100644 (file)
new mode 100755 (executable)
index 43ea867..2b03cf0
@@ -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>
old mode 100644 (file)
new mode 100755 (executable)
index 149b98c..43b73f1
@@ -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;
 }
 
old mode 100644 (file)
new mode 100755 (executable)
index 13bc4e5..2ba6f59
@@ -53,39 +53,51 @@ 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);
 
        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;
 }
old mode 100644 (file)
new mode 100755 (executable)
index a35e286..415960f
@@ -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) {
old mode 100644 (file)
new mode 100755 (executable)
index f70fdeb..f35280f
@@ -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)
old mode 100644 (file)
new mode 100755 (executable)
index f92d33a..e7a7c74
@@ -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);
@@ -90,8 +91,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 +103,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);
old mode 100644 (file)
new mode 100755 (executable)
index 9c76c21..a163325
@@ -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);
 }
 
old mode 100644 (file)
new mode 100755 (executable)
index 2188c61..9375178
@@ -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 2cf7992..e8fd460 100755 (executable)
@@ -40,6 +40,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)
@@ -52,6 +55,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)
@@ -74,6 +80,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()