[C-Api] handle invalid info when creating data handle
authorJaeyun <jy1210.jung@samsung.com>
Wed, 17 Jun 2020 03:45:50 +0000 (12:45 +0900)
committerMyungJoo Ham <myungjoo.ham@samsung.com>
Thu, 18 Jun 2020 11:21:40 +0000 (20:21 +0900)
When creating the data handle, return error if given tensors-info is invalid.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
api/capi/src/nnstreamer-capi-util.c
tests/tizen_capi/unittest_tizen_capi.cc

index 4db6a76..31b9fd2 100644 (file)
@@ -615,6 +615,11 @@ ml_tensors_data_create (const ml_tensors_info_h info, ml_tensors_data_h * data)
   if (info == NULL || data == NULL)
     return ML_ERROR_INVALID_PARAMETER;
 
+  if (!ml_tensors_info_is_valid (info)) {
+    nns_loge ("Given tensors information is invalid.");
+    return ML_ERROR_INVALID_PARAMETER;
+  }
+
   status =
       ml_tensors_data_create_no_alloc (info, (ml_tensors_data_h *) & _data);
 
index fe25ccf..01ada5f 100644 (file)
@@ -2110,6 +2110,10 @@ TEST (nnstreamer_capi_util, data_create_n)
   status = ml_tensors_data_create (info, nullptr);
   EXPECT_EQ (status, ML_ERROR_INVALID_PARAMETER);
 
+  /* invalid info */
+  status = ml_tensors_data_create (info, &data);
+  EXPECT_EQ (status, ML_ERROR_INVALID_PARAMETER);
+
   status = ml_tensors_info_destroy (info);
   ASSERT_EQ (status, ML_ERROR_NONE);
 }