avdtp_initiator: avoid access to variable set by higher layer

This commit is contained in:
Matthias Ringwald 2021-01-21 10:51:47 +01:00
parent 25459311ce
commit 26fbdc19f5

View File

@ -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));