[UTC][nntrainer][Non-ACR] handle heap use after free 06/288306/1
authorhyeonseok lee <hs89.lee@samsung.com>
Wed, 8 Feb 2023 09:43:33 +0000 (18:43 +0900)
committerhyeonseok lee <hs89.lee@samsung.com>
Wed, 15 Feb 2023 04:26:56 +0000 (13:26 +0900)
 - Remove utc_nntrainer_model_get_input/output_tensors_info_n3 testcases.
   This test cause heap use after free error.
 - Added model construct function.

Change-Id: I1f3989c9286bd48050d0bf077d2e0b9b01ffe9e3
Signed-off-by: hyeonseok lee <hs89.lee@samsung.com>
src/utc/nntrainer/tct-nntrainer-core_mobile.h
src/utc/nntrainer/tct-nntrainer-core_tizeniot.h
src/utc/nntrainer/tct-nntrainer-core_tv.h
src/utc/nntrainer/tct-nntrainer-core_wearable.h
src/utc/nntrainer/utc-nntrainer-model.c

index 8e4fa63f06b2ada2372c0f8b72ad24475a17a41e..c0c5f491519f3787eb8d95bc1e4ddf8df0bc103e 100644 (file)
@@ -145,11 +145,9 @@ extern int utc_nntrainer_layer_set_property_loss_cross_entropy_softmax_n(void);
 extern int utc_nntrainer_model_get_input_tensors_info_p(void);
 extern int utc_nntrainer_model_get_input_tensors_info_n1(void);
 extern int utc_nntrainer_model_get_input_tensors_info_n2(void);
-extern int utc_nntrainer_model_get_input_tensors_info_n3(void);
 extern int utc_nntrainer_model_get_output_tensors_info_p(void);
 extern int utc_nntrainer_model_get_output_tensors_info_n1(void);
 extern int utc_nntrainer_model_get_output_tensors_info_n2(void);
-extern int utc_nntrainer_model_get_output_tensors_info_n3(void);
 extern int utc_nntrainer_model_get_layer_p1(void);
 extern int utc_nntrainer_model_get_layer_n1(void);
 extern int utc_nntrainer_model_get_layer_p2(void);
@@ -292,11 +290,9 @@ testcase tc_array[] = {
     {"utc_nntrainer_model_get_input_tensors_info_p", utc_nntrainer_model_get_input_tensors_info_p, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_input_tensors_info_n1", utc_nntrainer_model_get_input_tensors_info_n1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_input_tensors_info_n2", utc_nntrainer_model_get_input_tensors_info_n2, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
-    {"utc_nntrainer_model_get_input_tensors_info_n3", utc_nntrainer_model_get_input_tensors_info_n3, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_output_tensors_info_p", utc_nntrainer_model_get_output_tensors_info_p, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_output_tensors_info_n1", utc_nntrainer_model_get_output_tensors_info_n1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_output_tensors_info_n2", utc_nntrainer_model_get_output_tensors_info_n2, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
-    {"utc_nntrainer_model_get_output_tensors_info_n3", utc_nntrainer_model_get_output_tensors_info_n3, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_layer_p1", utc_nntrainer_model_get_layer_p1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_layer_n1", utc_nntrainer_model_get_layer_n1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_layer_p2", utc_nntrainer_model_get_layer_p2, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
index 5c52a0f1405248e9f1fbcb264646d1cf148815da..c8e46476e3781a0b84d296f6b48294a5bb2d8c60 100644 (file)
@@ -146,11 +146,9 @@ extern int utc_nntrainer_layer_set_property_loss_cross_entropy_softmax_n(void);
 extern int utc_nntrainer_model_get_input_tensors_info_p(void);
 extern int utc_nntrainer_model_get_input_tensors_info_n1(void);
 extern int utc_nntrainer_model_get_input_tensors_info_n2(void);
-extern int utc_nntrainer_model_get_input_tensors_info_n3(void);
 extern int utc_nntrainer_model_get_output_tensors_info_p(void);
 extern int utc_nntrainer_model_get_output_tensors_info_n1(void);
 extern int utc_nntrainer_model_get_output_tensors_info_n2(void);
-extern int utc_nntrainer_model_get_output_tensors_info_n3(void);
 extern int utc_nntrainer_model_get_layer_p1(void);
 extern int utc_nntrainer_model_get_layer_n1(void);
 extern int utc_nntrainer_model_get_layer_p2(void);
@@ -293,11 +291,9 @@ testcase tc_array[] = {
     {"utc_nntrainer_model_get_input_tensors_info_p", utc_nntrainer_model_get_input_tensors_info_p, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_input_tensors_info_n1", utc_nntrainer_model_get_input_tensors_info_n1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_input_tensors_info_n2", utc_nntrainer_model_get_input_tensors_info_n2, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
-    {"utc_nntrainer_model_get_input_tensors_info_n3", utc_nntrainer_model_get_input_tensors_info_n3, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_output_tensors_info_p", utc_nntrainer_model_get_output_tensors_info_p, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_output_tensors_info_n1", utc_nntrainer_model_get_output_tensors_info_n1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_output_tensors_info_n2", utc_nntrainer_model_get_output_tensors_info_n2, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
-    {"utc_nntrainer_model_get_output_tensors_info_n3", utc_nntrainer_model_get_output_tensors_info_n3, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_layer_p1", utc_nntrainer_model_get_layer_p1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_layer_n1", utc_nntrainer_model_get_layer_n1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_layer_p2", utc_nntrainer_model_get_layer_p2, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
index 231713036f09888e9d778a87dea6e3cfc2360e4e..ed6b80ea0192f290dff2cd276268e34097f67cbb 100644 (file)
@@ -146,11 +146,9 @@ extern int utc_nntrainer_layer_set_property_loss_cross_entropy_softmax_n(void);
 extern int utc_nntrainer_model_get_input_tensors_info_p(void);
 extern int utc_nntrainer_model_get_input_tensors_info_n1(void);
 extern int utc_nntrainer_model_get_input_tensors_info_n2(void);
-extern int utc_nntrainer_model_get_input_tensors_info_n3(void);
 extern int utc_nntrainer_model_get_output_tensors_info_p(void);
 extern int utc_nntrainer_model_get_output_tensors_info_n1(void);
 extern int utc_nntrainer_model_get_output_tensors_info_n2(void);
-extern int utc_nntrainer_model_get_output_tensors_info_n3(void);
 extern int utc_nntrainer_model_get_layer_p1(void);
 extern int utc_nntrainer_model_get_layer_n1(void);
 extern int utc_nntrainer_model_get_layer_p2(void);
@@ -293,11 +291,9 @@ testcase tc_array[] = {
     {"utc_nntrainer_model_get_input_tensors_info_p", utc_nntrainer_model_get_input_tensors_info_p, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_input_tensors_info_n1", utc_nntrainer_model_get_input_tensors_info_n1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_input_tensors_info_n2", utc_nntrainer_model_get_input_tensors_info_n2, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
-    {"utc_nntrainer_model_get_input_tensors_info_n3", utc_nntrainer_model_get_input_tensors_info_n3, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_output_tensors_info_p", utc_nntrainer_model_get_output_tensors_info_p, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_output_tensors_info_n1", utc_nntrainer_model_get_output_tensors_info_n1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_output_tensors_info_n2", utc_nntrainer_model_get_output_tensors_info_n2, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
-    {"utc_nntrainer_model_get_output_tensors_info_n3", utc_nntrainer_model_get_output_tensors_info_n3, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_layer_p1", utc_nntrainer_model_get_layer_p1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_layer_n1", utc_nntrainer_model_get_layer_n1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_layer_p2", utc_nntrainer_model_get_layer_p2, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
index 4d424df41058b49ca133b56052afde43d49f9cbe..8a1550e2f504d45b6751119ca64018f9be90aafc 100644 (file)
@@ -146,11 +146,9 @@ extern int utc_nntrainer_layer_set_property_loss_cross_entropy_softmax_n(void);
 extern int utc_nntrainer_model_get_input_tensors_info_p(void);
 extern int utc_nntrainer_model_get_input_tensors_info_n1(void);
 extern int utc_nntrainer_model_get_input_tensors_info_n2(void);
-extern int utc_nntrainer_model_get_input_tensors_info_n3(void);
 extern int utc_nntrainer_model_get_output_tensors_info_p(void);
 extern int utc_nntrainer_model_get_output_tensors_info_n1(void);
 extern int utc_nntrainer_model_get_output_tensors_info_n2(void);
-extern int utc_nntrainer_model_get_output_tensors_info_n3(void);
 extern int utc_nntrainer_model_get_layer_p1(void);
 extern int utc_nntrainer_model_get_layer_n1(void);
 extern int utc_nntrainer_model_get_layer_p2(void);
@@ -293,11 +291,9 @@ testcase tc_array[] = {
     {"utc_nntrainer_model_get_input_tensors_info_p", utc_nntrainer_model_get_input_tensors_info_p, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_input_tensors_info_n1", utc_nntrainer_model_get_input_tensors_info_n1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_input_tensors_info_n2", utc_nntrainer_model_get_input_tensors_info_n2, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
-    {"utc_nntrainer_model_get_input_tensors_info_n3", utc_nntrainer_model_get_input_tensors_info_n3, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_output_tensors_info_p", utc_nntrainer_model_get_output_tensors_info_p, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_output_tensors_info_n1", utc_nntrainer_model_get_output_tensors_info_n1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_output_tensors_info_n2", utc_nntrainer_model_get_output_tensors_info_n2, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
-    {"utc_nntrainer_model_get_output_tensors_info_n3", utc_nntrainer_model_get_output_tensors_info_n3, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_layer_p1", utc_nntrainer_model_get_layer_p1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_layer_n1", utc_nntrainer_model_get_layer_n1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
     {"utc_nntrainer_model_get_layer_p2", utc_nntrainer_model_get_layer_p2, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
index 0d0c78703e0bc1ae70dc8723a3885d10d9a8ed7b..903591a8ae7957b3ba41e6ab4f3b5a491613597d 100644 (file)
@@ -268,6 +268,7 @@ int utc_nntrainer_model_add_layer_n1(void)
 int utc_nntrainer_model_add_layer_n2(void)
 {
   ml_train_model_h other_model;
+  ml_train_model_construct(&model);
   ml_train_model_construct(&other_model);
   ml_train_model_add_layer(other_model, layers[1]);
 
@@ -747,30 +748,6 @@ int utc_nntrainer_model_get_input_tensors_info_n2(void)
   return 0;
 }
 
-/**
- * @function utc_nntrainer_model_get_input_tensors_info_n3
- * @since_tizen 6.5
- * @description test for get info of model's input tensors with destroyed model
- */
-int utc_nntrainer_model_get_input_tensors_info_n3(void)
-{
-  ml_train_model_construct_with_conf(conf_path, &model);
-  ml_train_model_compile(model, NULL);
-  ml_train_model_destroy(model);
-
-  status = ml_train_model_get_input_tensors_info(model, &input_info);
-  if (train_supported == false)
-  {
-    assert_eq(status, ML_ERROR_NOT_SUPPORTED);
-  }
-  else
-  {
-    assert_neq(status, ML_ERROR_NONE);
-  }
-
-  return 0;
-}
-
 /**
  * @function utc_nntrainer_model_get_output_tensors_info_p
  * @since_tizen 6.5
@@ -869,30 +846,6 @@ int utc_nntrainer_model_get_output_tensors_info_n2(void)
   return 0;
 }
 
-/**
- * @function utc_nntrainer_model_get_output_tensors_info_n3
- * @since_tizen 6.5
- * @description test for get info of model's output tensors with destroyed model
- */
-int utc_nntrainer_model_get_output_tensors_info_n3(void)
-{
-  ml_train_model_construct_with_conf(conf_path, &model);
-  ml_train_model_compile(model, NULL);
-  ml_train_model_destroy(model);
-
-  status = ml_train_model_get_output_tensors_info(model, &output_info);
-  if (train_supported == false)
-  {
-    assert_eq(status, ML_ERROR_NOT_SUPPORTED);
-  }
-  else
-  {
-    assert_neq(status, ML_ERROR_NONE);
-  }
-
-  return 0;
-}
-
 /**
  * @function utc_nntrainer_model_get_layer_p1
  * @since_tizen 7.0