@@ -1161,9 +1161,11 @@ static bool valid_unicast_audio_start_param(const struct bt_cap_unicast_audio_st
1161
1161
const union bt_cap_set_member * member = & stream_param -> member ;
1162
1162
const struct bt_cap_stream * cap_stream = stream_param -> stream ;
1163
1163
const struct bt_audio_codec_cfg * codec_cfg = stream_param -> codec_cfg ;
1164
+ const struct bt_bap_ep * ep = stream_param -> ep ;
1164
1165
const struct bt_bap_stream * bap_stream ;
1165
1166
const struct bt_conn * member_conn =
1166
1167
bt_cap_common_get_member_conn (param -> type , member );
1168
+ struct bt_conn * ep_conn ;
1167
1169
1168
1170
if (member == NULL ) {
1169
1171
LOG_DBG ("param->members[%zu] is NULL" , i );
@@ -1185,11 +1187,26 @@ static bool valid_unicast_audio_start_param(const struct bt_cap_unicast_audio_st
1185
1187
return false;
1186
1188
}
1187
1189
1188
- CHECKIF ( stream_param -> ep == NULL ) {
1190
+ if ( ep == NULL ) {
1189
1191
LOG_DBG ("param->stream_params[%zu].ep is NULL" , i );
1190
1192
return false;
1191
1193
}
1192
1194
1195
+ ep_conn = bt_bap_ep_get_conn (ep );
1196
+ if (ep_conn == NULL ) {
1197
+ LOG_DBG ("param->stream_params[%zu].ep is invalid" , i );
1198
+ return false;
1199
+ }
1200
+ if (ep_conn != member_conn ) {
1201
+ LOG_DBG ("param->stream_params[%zu].ep conn %p does not match "
1202
+ "param->members[%zu] %p" ,
1203
+ i , ep_conn , i , member_conn );
1204
+ bt_conn_unref (ep_conn );
1205
+
1206
+ return false;
1207
+ }
1208
+ bt_conn_unref (ep_conn );
1209
+
1193
1210
CHECKIF (member == NULL ) {
1194
1211
LOG_DBG ("param->stream_params[%zu].member is NULL" , i );
1195
1212
return false;
0 commit comments