diff --git a/android/avdtp.c b/android/avdtp.c
index 2629e67..ed95ad7 100644
--- a/android/avdtp.c
+++ b/android/avdtp.c
{
struct pending_req *req;
+ if (size > 0 && !buffer) {
+ DBG("Invalid buffer %p", buffer);
+ return -EINVAL;
+ }
+
if (stream && stream->abort_int && signal_id != AVDTP_ABORT) {
DBG("Unable to send requests while aborting");
return -EINVAL;
req = g_new0(struct pending_req, 1);
req->signal_id = signal_id;
- req->data = g_malloc(size);
- memcpy(req->data, buffer, size);
req->data_size = size;
req->stream = stream;
+ if (size > 0) {
+ req->data = g_malloc(size);
+ memcpy(req->data, buffer, size);
+ }
+
return send_req(session, priority, req);
}