From 6c68ba47659d24ade025015044aaf807bd7961de Mon Sep 17 00:00:00 2001 From: Parichay Kapoor Date: Thu, 18 Apr 2019 16:31:34 +0900 Subject: [PATCH] [SVACE] Addressess memory leaks Resolved memory leaks given by svace for src_iio code as well as tests Signed-off-by: Parichay Kapoor --- gst/nnstreamer/tensor_source/tensor_src_iio.c | 6 +++--- tests/nnstreamer_source/unittest_src_iio.cpp | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/gst/nnstreamer/tensor_source/tensor_src_iio.c b/gst/nnstreamer/tensor_source/tensor_src_iio.c index 0119650..acf7fd1 100644 --- a/gst/nnstreamer/tensor_source/tensor_src_iio.c +++ b/gst/nnstreamer/tensor_source/tensor_src_iio.c @@ -2367,6 +2367,9 @@ gst_tensor_src_iio_fill (GstBaseSrc * src, guint64 offset, /** get writable buffer */ mem = gst_buffer_peek_memory (buffer, 0); g_assert (gst_memory_map (mem, &map, GST_MAP_WRITE)); + /** memory to data from file */ + bytes_to_read = self->scan_size * self->buffer_capacity; + raw_data_base = g_malloc (bytes_to_read); /** wait for the data to arrive */ time_to_end = g_get_real_time () + self->poll_timeout * 1000; @@ -2397,9 +2400,6 @@ gst_tensor_src_iio_fill (GstBaseSrc * src, guint64 offset, } } - /** read the data from file */ - bytes_to_read = self->scan_size * self->buffer_capacity; - raw_data_base = g_malloc (bytes_to_read); /** using read for non-blocking access */ status = read (self->buffer_data_fp->fd, raw_data_base, bytes_to_read); if (status < bytes_to_read) { diff --git a/tests/nnstreamer_source/unittest_src_iio.cpp b/tests/nnstreamer_source/unittest_src_iio.cpp index 4d317d6..bd43abb 100644 --- a/tests/nnstreamer_source/unittest_src_iio.cpp +++ b/tests/nnstreamer_source/unittest_src_iio.cpp @@ -527,6 +527,9 @@ build_dev_dir_scan_elements (iio_dev_dir_struct * iio_dev, data_size = num_bytes * iio_dev->num_scan_elements / skip; scan_el_data = (char *) malloc (data_size); + if (scan_el_data == NULL) { + return -1; + } /** total 8 possible cases */ for (int idx = 0; idx < iio_dev->num_scan_elements; idx++) { enabled = (idx % skip == 0); @@ -583,7 +586,10 @@ build_dev_dir_scan_elements (iio_dev_dir_struct * iio_dev, case 8: CHANGE_ENDIANNESS (64); default: + { + g_free (scan_el_data); return -1; + } }; } } @@ -1117,6 +1123,7 @@ TEST (test_tensor_src_iio, \ EXPECT_STREQ (expect_val_char, actual_val_char); \ g_free (actual_val_char); \ } \ + g_free (expect_val_char); \ close (fd); \ free (data_buffer); \ \ @@ -1245,6 +1252,7 @@ TEST (test_tensor_src_iio, data_verify_trigger) EXPECT_STREQ (expect_val_char, actual_val_char); g_free (actual_val_char); } + g_free (expect_val_char); close (fd); free (data_buffer); ASSERT_EQ (safe_remove (dev0->log_file), 0); @@ -1455,6 +1463,7 @@ TEST (test_tensor_src_iio, data_verify_freq_generic_type) EXPECT_STREQ (expect_val_char, actual_val_char); g_free (actual_val_char); } + g_free (expect_val_char); close (fd); free (data_buffer); ASSERT_EQ (safe_remove (dev0->log_file), 0); -- 2.7.4