payload->extension_value2 = org_payload->extension_value2;
payload->device_uid_len = org_payload->device_uid_len;
- payload->device_uid = g_memdup(org_payload->device_uid, org_payload->device_uid_len);
- if (!payload->device_uid && org_payload->device_uid) {
- UA_ERR("g_malloc0 failed");
- _ua_free_ua_payload_info_s(payload);
- return NULL;
+
+ if (org_payload->device_uid) {
+ payload->device_uid = g_memdup(org_payload->device_uid, org_payload->device_uid_len);
+ if (!payload->device_uid) {
+ UA_ERR("g_memdup failed");
+ _ua_free_ua_payload_info_s(payload);
+ return NULL;
+ }
}
user_data_len = UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN - 1 - org_payload->device_uid_len;
- payload->user_data = g_memdup(org_payload->user_data, user_data_len);
- if (!payload->user_data && org_payload->user_data) {
- UA_ERR("g_malloc0 failed");
- _ua_free_ua_payload_info_s(payload);
- return NULL;
+
+ if (org_payload->user_data) {
+ payload->user_data = g_memdup(org_payload->user_data, user_data_len);
+ if (!payload->user_data) {
+ UA_ERR("g_memdup failed");
+ _ua_free_ua_payload_info_s(payload);
+ return NULL;
+ }
}
FUNC_EXIT;