RETV_IF(NULL == src, ZIGBEE_ERROR_INVALID_PARAMETER);
RETV_IF(NULL == dst, ZIGBEE_ERROR_INVALID_PARAMETER);
+ len = zb_zcl_get_data_size(srcs->type);
+ RETV_IF(0 >= len, ZIGBEE_ERROR_NO_DATA);
+
desc = calloc(1, sizeof(struct read_attribute_status_record_s));
RETVM_IF(NULL == desc, ZIGBEE_ERROR_OUT_OF_MEMORY, "calloc() Fail(%d)", errno);
return ZIGBEE_ERROR_OUT_OF_MEMORY;
}
- len = zb_zcl_get_data_size(srcs->type);
- RETV_IF(0 >= len, ZIGBEE_ERROR_NO_DATA);
memcpy(desc->value, srcs->value, len);
*dst = desc;
RETV_IF(NULL == src, ZIGBEE_ERROR_INVALID_PARAMETER);
RETV_IF(NULL == dst, ZIGBEE_ERROR_INVALID_PARAMETER);
+ len = zb_zcl_get_data_size(srcs->type);
+ RETV_IF(0 >= len, ZIGBEE_ERROR_NO_DATA);
+
desc = calloc(1, sizeof(struct write_attribute_record_s));
RETVM_IF(NULL == desc, ZIGBEE_ERROR_OUT_OF_MEMORY, "calloc() Fail(%d)", errno);
memcpy(desc, src, sizeof(struct write_attribute_record_s));
- desc->value = calloc(1, zb_zcl_get_data_size(srcs->type));
+ desc->value = calloc(1, len);
if (NULL == desc->value) {
free(desc);
desc = NULL;
return ZIGBEE_ERROR_OUT_OF_MEMORY;
}
- len = zb_zcl_get_data_size(srcs->type);
- RETV_IF(0 >= len, ZIGBEE_ERROR_NO_DATA);
-
memcpy(desc->value, srcs->value, len);
*dst = desc;
RETV_IF(NULL == src, ZIGBEE_ERROR_INVALID_PARAMETER);
RETV_IF(NULL == dst, ZIGBEE_ERROR_INVALID_PARAMETER);
+ len = zb_zcl_get_data_size(srcs->type);
+ RETV_IF(0 >= len, ZIGBEE_ERROR_NO_DATA);
+
desc = calloc(1, sizeof(struct reporting_configuration_record_s));
RETVM_IF(NULL == desc, ZIGBEE_ERROR_OUT_OF_MEMORY, "calloc() Fail(%d)", errno);
memcpy(desc, src, sizeof(struct reporting_configuration_record_s));
- desc->change = calloc(1, zb_zcl_get_data_size(srcs->type));
+ desc->change = calloc(1, len);
if (NULL == desc->change) {
free(desc);
desc = NULL;
return ZIGBEE_ERROR_OUT_OF_MEMORY;
}
- len = zb_zcl_get_data_size(srcs->type);
- RETV_IF(0 >= len, ZIGBEE_ERROR_NO_DATA);
-
memcpy(desc->change, srcs->change, len);
*dst = desc;