[Coverity] Fix possible overflow accepted/tizen/unified/20250318.155612
authorYongjoo Ahn <yongjoo1.ahn@samsung.com>
Mon, 17 Mar 2025 01:48:52 +0000 (10:48 +0900)
committerjaeyun-jung <39614140+jaeyun-jung@users.noreply.github.com>
Mon, 17 Mar 2025 07:18:41 +0000 (16:18 +0900)
Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
src/hal-api-ml.c
tests/ml-haltests.cc

index 5d9e086e01be4d43a58ace17357d2ed214d5ed59..b77a4be1839d9d53febf21503de2fdde3153f785 100644 (file)
@@ -71,6 +71,15 @@ hal_ml_scan_backends (void)
   _D ("Scanning available HAL ML backends...");
 
   hal_ml_backend_count = hal_common_get_backend_count (HAL_MODULE_ML);
+  if (hal_ml_backend_count < 0) {
+    _E ("Failed to get backend count");
+    return -1;
+  }
+
+  if (hal_ml_backend_count == 0) {
+    return 0;
+  }
+
   _D ("hal_ml_backend_count: %d", hal_ml_backend_count);
 
   hal_ml_backend_names = (char **) malloc (sizeof (char *) * hal_ml_backend_count);
@@ -180,6 +189,15 @@ hal_ml_create (const char *backend_name, hal_ml_h *handle)
   static int scanned = 1;
   if (scanned == 1) {
     scanned = hal_ml_scan_backends ();
+    if (scanned < 0) {
+      _E ("Failed to scan backends");
+      return HAL_ML_ERROR_RUNTIME_ERROR;
+    }
+  }
+
+  if (hal_ml_backend_count == 0) {
+    _E ("There is no available backends");
+    return HAL_ML_ERROR_NOT_SUPPORTED;
   }
 
   _I ("Initializing backend %s", backend_name);
index e10fec2798335f4a6485a01427bf3ecc7c26180b..244a0cf895f0a89bc35379c5860b076a05699965 100644 (file)
@@ -43,7 +43,7 @@ TEST (HAL_ML, create_n)
 
   hal_ml_h ml;
   EXPECT_EQ (hal_ml_create (nullptr, &ml), HAL_ML_ERROR_INVALID_PARAMETER);
-  EXPECT_EQ (hal_ml_create ("there_is_no_available_backend", &ml), HAL_ML_ERROR_INVALID_PARAMETER);
+  EXPECT_NE (hal_ml_create ("there_is_no_available_backend", &ml), HAL_ML_ERROR_NONE);
 }
 
 TEST (HAL_ML, destroy_n)