diff --git a/src/classic/avdtp_initiator.c b/src/classic/avdtp_initiator.c index bc875d05d..357696f1b 100644 --- a/src/classic/avdtp_initiator.c +++ b/src/classic/avdtp_initiator.c @@ -178,14 +178,16 @@ void avdtp_initiator_stream_config_subsm(avdtp_connection_t *connection, uint8_t log_info("configured remote seid %d", stream_endpoint->remote_sep.seid); if ((stream_endpoint->remote_configuration_bitmap & (1 << AVDTP_MEDIA_CODEC)) != 0) { - // copy media codec configuration for known codecs - if (stream_endpoint->media_codec_type != AVDTP_CODEC_NON_A2DP) { - btstack_assert( - stream_endpoint->remote_configuration.media_codec.media_codec_information_len == - stream_endpoint->media_codec_configuration_len); + // copy media codec configuration if length correct + if (stream_endpoint->remote_configuration.media_codec.media_codec_information_len != + stream_endpoint->media_codec_configuration_len){ (void) memcpy(stream_endpoint->media_codec_configuration_info, stream_endpoint->remote_configuration.media_codec.media_codec_information, stream_endpoint->media_codec_configuration_len); + } else { + log_error("Remote codec info len %u !=> local buffer len %u", stream_endpoint->remote_configuration.media_codec.media_codec_information_len, + stream_endpoint->media_codec_configuration_len); + (void) memset(stream_endpoint->media_codec_configuration_info, 0, stream_endpoint->media_codec_configuration_len); } avdtp_signaling_emit_configuration(stream_endpoint, connection->avdtp_cid, 0, &sep.configuration, (1 << AVDTP_MEDIA_CODEC));