[CodeClean] handle allocation failure case
authorJaeyun <jy1210.jung@samsung.com>
Fri, 12 Aug 2022 08:32:15 +0000 (17:32 +0900)
committerjaeyun-jung <39614140+jaeyun-jung@users.noreply.github.com>
Fri, 12 Aug 2022 09:43:53 +0000 (18:43 +0900)
Fix svace issue, handle error case if memory allocation is failed.

Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
src/libnnstreamer-edge/nnstreamer-edge-common.c
src/libnnstreamer-edge/nnstreamer-edge-mqtt.c

index 394640203e2d148c729c0a8fc06136f733f396cf..31bbc28408710c87d0465906a80738c8fd78b187 100644 (file)
@@ -764,12 +764,26 @@ nns_edge_data_copy (nns_edge_data_h data_h, nns_edge_data_h * new_data_h)
   for (i = 0; i < ed->num; i++) {
     copied->data[i].data = nns_edge_memdup (ed->data[i].data,
         ed->data[i].data_len);
+
+    if (!copied->data[i].data) {
+      nns_edge_loge ("Failed to copy data, error while allocating new memory.");
+      copied->num = i;
+      ret = NNS_EDGE_ERROR_OUT_OF_MEMORY;
+      goto done;
+    }
+
     copied->data[i].data_len = ed->data[i].data_len;
     copied->data[i].destroy_cb = nns_edge_free;
   }
 
   ret = nns_edge_metadata_copy (&copied->metadata, &ed->metadata);
 
+done:
+  if (ret != NNS_EDGE_ERROR_NONE) {
+    nns_edge_data_destroy (*new_data_h);
+    *new_data_h = NULL;
+  }
+
   nns_edge_unlock (ed);
   return ret;
 }
index fba2805007b613f3ac3c6de98f5239b1a897c50b..bcf0164bcd6cc936076cab22e99b6322f77848f8 100644 (file)
@@ -186,7 +186,8 @@ mqtt_cb_message_arrived (void *context, char *topic, int topic_len,
       eh->id, eh->topic);
 
   msg = nns_edge_memdup (message->payload, message->payloadlen);
-  g_async_queue_push (bh->server_list, msg);
+  if (msg)
+    g_async_queue_push (bh->server_list, msg);
 
   return TRUE;
 }