From d4826d1fe343d5b6d623cc3f66fdf22de816b2c0 Mon Sep 17 00:00:00 2001 From: Jaeyun Date: Fri, 12 Aug 2022 17:32:15 +0900 Subject: [PATCH] [CodeClean] handle allocation failure case Fix svace issue, handle error case if memory allocation is failed. Signed-off-by: Jaeyun --- src/libnnstreamer-edge/nnstreamer-edge-common.c | 14 ++++++++++++++ src/libnnstreamer-edge/nnstreamer-edge-mqtt.c | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/libnnstreamer-edge/nnstreamer-edge-common.c b/src/libnnstreamer-edge/nnstreamer-edge-common.c index 3946402..31bbc28 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-common.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-common.c @@ -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; } diff --git a/src/libnnstreamer-edge/nnstreamer-edge-mqtt.c b/src/libnnstreamer-edge/nnstreamer-edge-mqtt.c index fba2805..bcf0164 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-mqtt.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-mqtt.c @@ -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; } -- 2.34.1