[SVACE] Addressess memory leaks
authorParichay Kapoor <pk.kapoor@samsung.com>
Thu, 18 Apr 2019 07:31:34 +0000 (16:31 +0900)
committerjaeyun-jung <39614140+jaeyun-jung@users.noreply.github.com>
Thu, 18 Apr 2019 09:42:56 +0000 (18:42 +0900)
Resolved memory leaks given by svace for src_iio code as well as tests

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
gst/nnstreamer/tensor_source/tensor_src_iio.c
tests/nnstreamer_source/unittest_src_iio.cpp

index 0119650..acf7fd1 100644 (file)
@@ -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) {
index 4d317d6..bd43abb 100644 (file)
@@ -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);