diff --git a/profiles/audio/avdtp.c b/profiles/audio/avdtp.c
index f2b4613..da4114e 100644
--- a/profiles/audio/avdtp.c
+++ b/profiles/audio/avdtp.c
single.signal_id = signal_id;
memcpy(session->buf, &single, sizeof(single));
- memcpy(session->buf + sizeof(single), data, len);
+
+ if (data)
+ memcpy(session->buf + sizeof(single), data, len);
return try_send(sock, session->buf, sizeof(single) + len);
}
if (req->timeout)
timeout_remove(req->timeout);
- g_free(req->data);
+ free(req->data);
g_free(req);
}
return 0;
failed:
- g_free(req->data);
+ free(req->data);
g_free(req);
return err;
}
req = g_new0(struct pending_req, 1);
req->signal_id = signal_id;
- req->data = g_malloc(size);
- memcpy(req->data, buffer, size);
+ req->data = util_memdup(buffer, size);
req->data_size = size;
req->stream = stream;
cap = g_malloc(sizeof(struct avdtp_service_capability) + length);
cap->category = category;
cap->length = length;
- memcpy(cap->data, data, length);
+
+ if (data)
+ memcpy(cap->data, data, length);
return cap;
}