diff --git a/profiles/audio/a2dp.c b/profiles/audio/a2dp.c
index d2c2bec..8b0b16f 100644
--- a/profiles/audio/a2dp.c
+++ b/profiles/audio/a2dp.c
struct btd_service *service;
struct a2dp_stream *stream;
+ dev = avdtp_get_device(setup->session);
+
+ if (setup->sep->type == AVDTP_SEP_TYPE_SOURCE)
+ service = btd_device_get_service(dev, A2DP_SINK_UUID);
+ else
+ service = btd_device_get_service(dev, A2DP_SOURCE_UUID);
+
+ if (service == NULL) {
+ error("Unable to find btd service");
+ return FALSE;
+ }
+
/* Check if configuration was aborted */
stream = queue_find(setup->sep->streams, match_stream, setup->stream);
if (!stream)
if (setup->err != NULL)
goto done;
- dev = avdtp_get_device(setup->session);
-
avdtp_stream_add_cb(setup->session, setup->stream,
stream_state_changed, setup->sep);
if (setup->sep->type == AVDTP_SEP_TYPE_SOURCE) {
- service = btd_device_get_service(dev, A2DP_SINK_UUID);
sink_new_stream(service, setup->session, setup->stream);
} else {
- service = btd_device_get_service(dev, A2DP_SOURCE_UUID);
source_new_stream(service, setup->session, setup->stream);
}
struct btd_service *service;
int ret;
- if (a2dp_sep->type == AVDTP_SEP_TYPE_SINK)
+ dev = avdtp_get_device(session);
+
+ if (a2dp_sep->type == AVDTP_SEP_TYPE_SINK) {
DBG("Sink %p: Set_Configuration_Cfm", sep);
- else
+ service = btd_device_get_service(dev, A2DP_SOURCE_UUID);
+ } else {
DBG("Source %p: Set_Configuration_Cfm", sep);
+ service = btd_device_get_service(dev, A2DP_SINK_UUID);
+ }
+
+ if (service == NULL) {
+ error("Unable to find btd service");
+ return;
+ }
setup = find_setup_by_session(session);
if (!setup)
return;
- dev = avdtp_get_device(session);
-
/* Notify D-Bus interface of the new stream */
if (a2dp_sep->type == AVDTP_SEP_TYPE_SOURCE) {
- service = btd_device_get_service(dev, A2DP_SINK_UUID);
sink_new_stream(service, session, setup->stream);
} else {
- service = btd_device_get_service(dev, A2DP_SOURCE_UUID);
source_new_stream(service, session, setup->stream);
}
diff --git a/profiles/audio/avrcp.c b/profiles/audio/avrcp.c
index b3e6987..e279711 100644
--- a/profiles/audio/avrcp.c
+++ b/profiles/audio/avrcp.c
if (session->controller->player == player)
goto done;
- session->controller->player = player;
service = btd_device_get_service(session->dev, AVRCP_TARGET_UUID);
+
+ if (service == NULL) {
+ error("Unable to find btd service");
+ return;
+ }
+
+ session->controller->player = player;
control_set_player(service, player ?
media_player_get_path(player->user_data) : NULL);
if (session->target != NULL)
return;
+ service = btd_device_get_service(session->dev, AVRCP_REMOTE_UUID);
+
+ if (service == NULL) {
+ error("Unable to find btd service");
+ return;
+ }
+
target = data_init(session, AVRCP_REMOTE_UUID);
session->target = target;
DBG("%p version 0x%04x", target, target->version);
- service = btd_device_get_service(session->dev, AVRCP_REMOTE_UUID);
btd_service_connecting_complete(service, 0);
player = g_slist_nth_data(server->players, 0);
if (session->controller != NULL)
return;
+ service = btd_device_get_service(session->dev, AVRCP_TARGET_UUID);
+
+ if (service == NULL) {
+ error("Unable to find btd service");
+ return;
+ }
+
controller = data_init(session, AVRCP_TARGET_UUID);
session->controller = controller;
if (controller->obex_port)
DBG("%p OBEX PSM 0x%04x", controller, controller->obex_port);
- service = btd_device_get_service(session->dev, AVRCP_TARGET_UUID);
btd_service_connecting_complete(service, 0);
/* Only create player if category 1 is supported */
diff --git a/profiles/audio/bass.c b/profiles/audio/bass.c
index c853fbc..87db130 100644
--- a/profiles/audio/bass.c
+++ b/profiles/audio/bass.c
struct bass_setup *setup = queue_find(dg->setups,
match_setup_stream, stream);
+ if (setup == NULL)
+ return;
+
if (dg->bap != bap)
return;