From: Boram Bae Date: Mon, 23 Mar 2020 04:58:36 +0000 (+0900) Subject: Fix coverity issues X-Git-Tag: submit/tizen/20200323.054406^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=75bdbb48569b86bd3726c0c3f83c2582e27ca7a8;p=platform%2Fcore%2Fsystem%2Fsensord.git Fix coverity issues Change-Id: I234a51bb32ba6f2c105d8227acb519dc05e19182 Signed-off-by: Boram Bae --- diff --git a/src/sensorctl/test_bench.h b/src/sensorctl/test_bench.h index 9f516222..3da2fd0c 100644 --- a/src/sensorctl/test_bench.h +++ b/src/sensorctl/test_bench.h @@ -110,6 +110,23 @@ public: \ } test_case_##group##_##name##_instance; \ bool test_case_##group##_##name::test(void) +template +class Deleter { +public: + T*& get() + { + return storage; + } + ~Deleter() { + if(storage) { + free(storage); + } + } + +private: + T *storage{nullptr}; +}; + /* * Declaration of test_option */ diff --git a/src/sensorctl/testcase/sensor_listener.cpp b/src/sensorctl/testcase/sensor_listener.cpp index e6465945..724c09c2 100644 --- a/src/sensorctl/testcase/sensor_listener.cpp +++ b/src/sensorctl/testcase/sensor_listener.cpp @@ -29,6 +29,8 @@ #include "mainloop.h" #include "test_bench.h" + +typedef Deleter Deleter_char; static bool called = false; static int count = 0; @@ -369,7 +371,7 @@ TESTCASE(sensor_listener, set_get_attribute_string_1) int err = 0; bool ret = true; int handle = 0; - char *value = NULL; + Deleter_char value; int len = 0; sensor_t sensor = NULL; int attr = 1; @@ -381,15 +383,14 @@ TESTCASE(sensor_listener, set_get_attribute_string_1) err = sensord_set_attribute_str(handle, attr, TEST_STRING, TEST_STRING_LEN); ASSERT_EQ(err, 0); - err = sensord_get_attribute_str(handle, attr, &value, &len); + err = sensord_get_attribute_str(handle, attr, &(value.get()), &len); ASSERT_EQ(err, 0); ASSERT_EQ(len, TEST_STRING_LEN); - ASSERT_EQ(strncmp(value, TEST_STRING, len), 0); + ASSERT_EQ(strncmp(value.get(), TEST_STRING, len), 0); ret = sensord_disconnect(handle); ASSERT_TRUE(ret); - free(value); return true; } @@ -399,7 +400,7 @@ TESTCASE(sensor_listener, set_get_attribute_string_2) int err = 0; bool ret = true; int handle = 0; - char *value = NULL; + Deleter_char value; int len = 0; sensor_t sensor = NULL; int attr = 1; @@ -413,14 +414,13 @@ TESTCASE(sensor_listener, set_get_attribute_string_2) err = sensord_set_attribute_str(handle, attr, attr_value, BUF_SIZE); ASSERT_EQ(err, 0); - err = sensord_get_attribute_str(handle, attr, &value, &len); + err = sensord_get_attribute_str(handle, attr, &(value.get()), &len); ASSERT_EQ(err, 0); ASSERT_EQ(len, BUF_SIZE); ret = sensord_disconnect(handle); ASSERT_TRUE(ret); - free(value); return true; } @@ -429,7 +429,7 @@ TESTCASE(sensor_listener, set_get_attribute_string_3) int err = 0; bool ret = true; int handle = 0; - char *value = NULL; + Deleter_char value; int len = 0; sensor_t sensor = NULL; int attr = 1; @@ -442,16 +442,15 @@ TESTCASE(sensor_listener, set_get_attribute_string_3) ASSERT_EQ(err, 0); for (int i = 0; i < 10; i++) { - err = sensord_get_attribute_str(handle, attr, &value, &len); + err = sensord_get_attribute_str(handle, attr, &(value.get()), &len); ASSERT_EQ(err, 0); ASSERT_EQ(len, TEST_STRING_LEN); - ASSERT_EQ(strncmp(value, TEST_STRING, len), 0); + ASSERT_EQ(strncmp(value.get(), TEST_STRING, len), 0); } ret = sensord_disconnect(handle); ASSERT_TRUE(ret); - free(value); return true; } @@ -460,7 +459,8 @@ TESTCASE(sensor_listener, set_get_get_attribute_string_1) int err; bool ret; int handle; - char *value = NULL; + Deleter_char value; + Deleter_char value2; int len = 0; sensor_t sensor; int attr = 1; @@ -472,17 +472,14 @@ TESTCASE(sensor_listener, set_get_get_attribute_string_1) err = sensord_set_attribute_str(handle, attr, TEST_STRING, TEST_STRING_LEN); ASSERT_EQ(err, 0); - err = sensord_get_attribute_str(handle, attr, &value, &len); + err = sensord_get_attribute_str(handle, attr, &(value.get()), &len); ASSERT_EQ(err, 0); ASSERT_EQ(len, TEST_STRING_LEN); - ASSERT_EQ(strncmp(value, TEST_STRING, len), 0); + ASSERT_EQ(strncmp(value.get(), TEST_STRING, len), 0); ret = sensord_disconnect(handle); ASSERT_TRUE(ret); - free(value); - - value = NULL; len = 0; err = sensord_get_default_sensor(ACCELEROMETER_SENSOR, &sensor); @@ -490,15 +487,14 @@ TESTCASE(sensor_listener, set_get_get_attribute_string_1) handle = sensord_connect(sensor); - err = sensord_get_attribute_str(handle, attr, &value, &len); + err = sensord_get_attribute_str(handle, attr, &(value2.get()), &len); ASSERT_EQ(err, 0); ASSERT_EQ(len, TEST_STRING_LEN); - ASSERT_EQ(strncmp(value, TEST_STRING, len), 0); + ASSERT_EQ(strncmp(value2.get(), TEST_STRING, len), 0); ret = sensord_disconnect(handle); ASSERT_TRUE(ret); - free(value); return true; } @@ -507,7 +503,7 @@ TESTCASE(sensor_listener, get_attribute_string_2) int err; bool ret; int handle; - char *value; + Deleter_char value; int len; sensor_t sensor; int attr = 100; @@ -518,7 +514,7 @@ TESTCASE(sensor_listener, get_attribute_string_2) handle = sensord_connect(sensor); // attr 100 value is never set in these tests. - err = sensord_get_attribute_str(handle, attr, &value, &len); + err = sensord_get_attribute_str(handle, attr, &(value.get()), &len); ASSERT_EQ(err, -EIO); ret = sensord_disconnect(handle);