From: saerome kim Date: Wed, 27 Sep 2017 12:34:36 +0000 (+0900) Subject: Fix coverity issue X-Git-Tag: accepted/tizen/unified/20170929.082116~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=07485fb13f8ff9e025dac61fcfe3fb912ea38ace;p=platform%2Fcore%2Fapi%2Fzigbee.git Fix coverity issue - Fix resource leak issues - Fix momory corruption issue Change-Id: Ie5381307a7f87503649523179a527f99848eec88 Signed-off-by: saerome kim --- diff --git a/lib/zbl_dbus.c b/lib/zbl_dbus.c index 8ac53e8..2dce7d1 100644 --- a/lib/zbl_dbus.c +++ b/lib/zbl_dbus.c @@ -708,7 +708,7 @@ static void _zbl_signal_handler(GDBusConnection *connection, unsigned short attrData; unsigned short cluster_id; unsigned char dataType; - unsigned short data_size; + int data_size; int dsizeIndex = 0; char dSize[3] = {'\0', '\0'}; int i = 0, j = 0, records_len; @@ -1887,8 +1887,10 @@ MGMT_NWK_BIND_REQ_OUT: &records[i]->rx_on_when_idle, &records[i]->relationship, &records[i]->permit_joining, &records[i]->depth, &records[i]->lqi); - RETM_IF(NULL == mac_iter, "Invalid parameter !"); - RETM_IF(NULL == mac_iter1, "Invalid parameter !"); + if (NULL == mac_iter || NULL == mac_iter1) { + ERR("Invalid parameter !"); + goto MGMT_LQI_REQ_OUT; + } for (j = 0; j < 8; j++) { g_variant_iter_loop(mac_iter, "y", &value); @@ -1900,14 +1902,15 @@ MGMT_NWK_BIND_REQ_OUT: g_variant_iter_free(mac_iter1); DBG("ext PAN ID = %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X", - records[i]->extended_pan_id[0], records[i]->extended_pan_id[1], - records[i]->extended_pan_id[2], records[i]->extended_pan_id[3], - records[i]->extended_pan_id[4], records[i]->extended_pan_id[5], - records[i]->extended_pan_id[6], records[i]->extended_pan_id[7]); + records[i]->extended_pan_id[0], records[i]->extended_pan_id[1], + records[i]->extended_pan_id[2], records[i]->extended_pan_id[3], + records[i]->extended_pan_id[4], records[i]->extended_pan_id[5], + records[i]->extended_pan_id[6], records[i]->extended_pan_id[7]); DBG("IEEE address = %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X", - records[i]->addr64[0], records[i]->addr64[1], records[i]->addr64[2], records[i]->addr64[3], - records[i]->addr64[4], records[i]->addr64[5], records[i]->addr64[6], records[i]->addr64[7]); + records[i]->addr64[0], records[i]->addr64[1], records[i]->addr64[2], + records[i]->addr64[3], records[i]->addr64[4], records[i]->addr64[5], + records[i]->addr64[6], records[i]->addr64[7]); } g_variant_iter_free(resp_iter); @@ -1915,11 +1918,14 @@ MGMT_NWK_BIND_REQ_OUT: (void **)records, container->userdata); MGMT_LQI_REQ_OUT: - for (i = 0; i < neighbor_table_list_count; i++) { - if (records[i]) - free(records[i]); + if (records) { + for (i = 0; i < neighbor_table_list_count; i++) { + if (records[i]) + free(records[i]); + } + free(records); + records = NULL; } - free(records); } break; case ZBL_ZDO_MGMT_RTG_REQ: { @@ -2023,11 +2029,14 @@ MGMT_NWK_RTG_REQ_OUT: cb(status, nwk_count, start_index, nwk_list_count, (void **)records, container->userdata); MGMT_NWK_DISC_REQ_OUT: - for (i = 0; i < nwk_list_count; i++) { - if (records[i]) - free(records[i]); + if (records) { + for (i = 0; i < nwk_list_count; i++) { + if (records[i]) + free(records[i]); + } + free(records); + records = NULL; } - free(records); } break; case ZBL_ZDO_MGMT_PERMIT_JOIN_REQ: { @@ -2692,16 +2701,14 @@ GLOBAL_READ_CONFIGURE_REPORTING_REQ_OUT: } g_variant_iter_free(grpNameiter); } else { - group_name = calloc(1, sizeof(char)); + group_name = calloc(2, sizeof(char)); if (NULL == group_name) { g_variant_iter_free(grpNameiter); ERR("calloc() Fail(%d)", errno); goto GROUP_VIEW_GROUP_REQ_OUT; } - group_name[j] = value; - j++; - group_name[j] = '\0'; - j++; + group_name[j++] = value; + group_name[j++] = '\0'; } DBG("GroupName = %s", group_name);