/* String */
case ZB_ZCL_OCTET_STRING:
case ZB_ZCL_CHARACTER_STRING:
- g_variant_iter_loop(data_iter, "(y)", &value);
+ if (FALSE == g_variant_iter_loop(data_iter, "(y)", &value)) {
+ ERR("No Data");
+ goto EXIT_EVENT_HANDLER;
+ }
data_size = value + 1;
records[j]->value = calloc(data_size, sizeof(unsigned char));
if (NULL == records[j]->value) {
records[j]->value[dsizeIndex] = value;
dsizeIndex++;
for (i = dsizeIndex; i < data_size - 2; i++) {
- g_variant_iter_loop(data_iter, "(y)", &value);
+ if (FALSE == g_variant_iter_loop(data_iter, "(y)", &value)) {
+ ERR("No Data");
+ goto EXIT_EVENT_HANDLER;
+ }
records[j]->value[i] = value;
}
g_variant_iter_free(data_iter);
break;
case ZB_ZCL_LONG_OCTET_STRING:
case ZB_ZCL_LONG_CHARACTER_STRING:
- g_variant_iter_loop(data_iter, "(y)", &value);
+ if (FALSE == g_variant_iter_loop(data_iter, "(y)", &value)) {
+ ERR("No Data");
+ goto EXIT_EVENT_HANDLER;
+ }
dSize[0] = value;
- g_variant_iter_loop(data_iter, "(y)", &value);
+ if (FALSE == g_variant_iter_loop(data_iter, "(y)", &value)) {
+ ERR("No Data");
+ goto EXIT_EVENT_HANDLER;
+ }
dSize[1] = value;
data_size = dSize[1];
data_size = (data_size << 8) | dSize[0];
dsizeIndex++;
for (i = dsizeIndex; i < data_size - 2; i++) {
- g_variant_iter_loop(data_iter, "(y)", &value);
+ if (FALSE == g_variant_iter_loop(data_iter, "(y)", &value)) {
+ ERR("No Data");
+ goto EXIT_EVENT_HANDLER;
+ }
records[j]->value[i] = value;
}
g_variant_iter_free(data_iter);
}
if (data_size != 0xFF) {
for (i = 0; i < data_size; i++) {
- if (g_variant_iter_loop(data_iter, "(y)", &value)) {
- records[j]->value[i] = value;
- DBG("value[%d] 0x%02X", i, records[j]->value[i]);
+ if (FALSE == g_variant_iter_loop(data_iter, "(y)", &value)) {
+ ERR("No Data");
+ goto EXIT_EVENT_HANDLER;
}
+ records[j]->value[i] = value;
+ DBG("value[%d] 0x%02X", i, records[j]->value[i]);
}
}
g_variant_iter_free(data_iter);
}
for (i = 0; i < binding_table_list_count; i++) {
- g_variant_iter_loop(rsp_iter, "(ayyqyqayy)", &mac_iter,
+ if (FALSE == g_variant_iter_loop(rsp_iter, "(ayyqyqayy)", &mac_iter,
&records[i]->src_ep, &records[i]->clusterid,
&records[i]->dst_addr_mode, &dst_addr16,
- &destep_iter, &dst_ep);
+ &destep_iter, &dst_ep)) {
+ ERR("No Data");
+ goto MGMT_NWK_BIND_REQ_OUT;
+ }
if (NULL == mac_iter) {
ERR("Invalid parameter !");
goto MGMT_NWK_BIND_REQ_OUT;
}
for (j = 0; j < 8; j++) {
- g_variant_iter_loop(mac_iter, "y", &value);
+ if (FALSE == g_variant_iter_loop(mac_iter, "y", &value)) {
+ ERR("No Data");
+ goto MGMT_NWK_BIND_REQ_OUT;
+ }
records[i]->src_addr64[j] = value;
}
g_variant_iter_free(mac_iter);
if (0x03 == records[i]->dst_addr_mode) {
for (j = 0; j < 8; j++) {
- g_variant_iter_loop(destep_iter, "y", &value);
+ if (FALSE == g_variant_iter_loop(destep_iter, "y", &value)) {
+ ERR("No Data");
+ break;
+ }
records[i]->dst_addr64[j] = value;
}
g_variant_iter_free(destep_iter);
}
}
for (i = 0; i < neighbor_table_list_count; i++) {
- g_variant_iter_loop(resp_iter, "(ayayyqyyyyy)",
+ if (FALSE == g_variant_iter_loop(resp_iter, "(ayayyqyyyyy)",
&mac_iter, &mac_iter1,
&records[i]->device_type, &records[i]->addr16,
&records[i]->rx_on_when_idle, &records[i]->relationship,
&records[i]->permit_joining, &records[i]->depth,
- &records[i]->lqi);
+ &records[i]->lqi)) {
+ ERR("No Data");
+ goto MGMT_LQI_REQ_OUT;
+ }
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);
+ if (FALSE == g_variant_iter_loop(mac_iter, "y", &value)) {
+ ERR("No Data");
+ goto MGMT_LQI_REQ_OUT;
+ }
records[i]->extended_pan_id[j] = value;
- g_variant_iter_loop(mac_iter1, "y", &value);
+ if (FALSE == g_variant_iter_loop(mac_iter1, "y", &value)) {
+ ERR("No Data");
+ goto MGMT_LQI_REQ_OUT;
+ }
records[i]->addr64[j] = value;
}
g_variant_iter_free(mac_iter);
}
for (i = 0; i < routing_table_list_count; i++) {
- g_variant_iter_loop(rsp_iter, "(qyyyyq)", &records[i]->dst_addr,
+ if (FALSE == g_variant_iter_loop(rsp_iter, "(qyyyyq)", &records[i]->dst_addr,
&records[i]->status, &records[i]->memory_constrained,
&records[i]->route_record_required,
- &records[i]->many_to_one, &records[i]->next_hop_addr);
+ &records[i]->many_to_one, &records[i]->next_hop_addr)) {
+ WARN("No more data");
+ break;
+ }
}
g_variant_iter_free(rsp_iter);
}
}
for (i = 0; i < nwk_list_count; i++) {
- g_variant_iter_loop(resp_iter, "(ayyyyyyy)",
+ if (FALSE == g_variant_iter_loop(resp_iter, "(ayyyyyyy)",
&mac_iter, &records[i]->logical_channel,
&records[i]->stack_profile, &records[i]->zigbee_version,
&records[i]->beacon_order,
- &records[i]->superframe_order, &records[i]->permit_joining);
+ &records[i]->superframe_order, &records[i]->permit_joining)) {
+ ERR("No Data");
+ break;
+ }
if (NULL == mac_iter) {
ERR("Invalid parameter !");
goto MGMT_NWK_DISC_REQ_OUT;
}
for (j = 0; j < 8; j++) {
- g_variant_iter_loop(mac_iter, "y", &value);
+ if (FALSE == g_variant_iter_loop(mac_iter, "y", &value)) {
+ ERR("No Data");
+ break;
+ }
records[i]->extended_pan_id[j] = value;
}
g_variant_iter_free(mac_iter);
}
for (i = 0; i < record_length; i++) {
- g_variant_iter_loop(resp_iter, "(yyqyqqayq)", &status[i], &records[i]->dir,
+ if (FALSE == g_variant_iter_loop(resp_iter, "(yyqyqqayq)", &status[i], &records[i]->dir,
&records[i]->id, &records[i]->type, &records[i]->max_i, &records[i]->min_i,
- &data_iter, &records[i]->to);
+ &data_iter, &records[i]->to)) {
+ ERR("No Data");
+ goto GLOBAL_READ_CONFIGURE_REPORTING_REQ_OUT;
+ }
if (NULL == data_iter) {
ERR("Invalid parameter !");
goto GLOBAL_READ_CONFIGURE_REPORTING_REQ_OUT;
goto GROUP_VIEW_GROUP_REQ_OUT;
}
- g_variant_iter_loop(grpNameiter, "y", &value);
+ if (FALSE == g_variant_iter_loop(grpNameiter, "y", &value)) {
+ ERR("No Data");
+ goto GROUP_VIEW_GROUP_REQ_OUT;
+ }
/* first byte indicates the length of the string */
if ((value - '0') > 0) {
DBG("Value %d ", (value - '0'));