From 2e43085c41dcb2efa457430f94e6261be13cffc3 Mon Sep 17 00:00:00 2001 From: Timotej S <6674623+underhood@users.noreply.github.com> Date: Thu, 8 Jul 2021 13:27:38 +0200 Subject: Fixes coverity errors in ACLK (#11322) Fixes CID371885 and CID371884 --- aclk/aclk.c | 8 +++++++- aclk/aclk_rx_msgs.c | 22 ++++++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/aclk/aclk.c b/aclk/aclk.c index 3cb25a67d3..416f28e7ee 100644 --- a/aclk/aclk.c +++ b/aclk/aclk.c @@ -972,7 +972,12 @@ void ng_aclk_host_state_update(RRDHOST *host, int cmd) void aclk_send_node_instances() { - struct node_instance_list *list = get_node_list(); + struct node_instance_list *list_head = get_node_list(); + struct node_instance_list *list = list_head; + if (unlikely(!list)) { + error_report("Failure to get_node_list from DB!"); + return; + } while (!uuid_is_null(list->host_id)) { if (!uuid_is_null(list->node_id)) { aclk_query_t query = aclk_query_new(NODE_STATE_UPDATE); @@ -1001,4 +1006,5 @@ void aclk_send_node_instances() list++; } + freez(list_head); } diff --git a/aclk/aclk_rx_msgs.c b/aclk/aclk_rx_msgs.c index 26e8fdc51b..a97166716f 100644 --- a/aclk/aclk_rx_msgs.c +++ b/aclk/aclk_rx_msgs.c @@ -270,10 +270,28 @@ void aclk_handle_new_cloud_msg(const char *message_type, const char *msg, size_t } if (!strcmp(message_type, "CreateNodeInstanceResult")) { node_instance_creation_result_t res = parse_create_node_instance_result(msg, msg_len); + if (!res.machine_guid || !res.node_id) { + error_report("Error parsing CreateNodeInstanceResult"); + freez(res.machine_guid); + freez(res.node_id); + return; + } + debug(D_ACLK, "CreateNodeInstanceResult: guid:%s nodeid:%s", res.machine_guid, res.node_id); + uuid_t host_id, node_id; - uuid_parse(res.machine_guid, host_id); - uuid_parse(res.node_id, node_id); + if (uuid_parse(res.machine_guid, host_id)) { + error("Error parsing machine_guid provided by CreateNodeInstanceResult"); + freez(res.machine_guid); + freez(res.node_id); + return; + } + if (uuid_parse(res.node_id, node_id)) { + error("Error parsing node_id provided by CreateNodeInstanceResult"); + freez(res.machine_guid); + freez(res.node_id); + return; + } update_node_id(&host_id, &node_id); aclk_query_t query = aclk_query_new(NODE_STATE_UPDATE); -- cgit v1.2.3