mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-25 16:43:28 +00:00
avdtp_util: return 0 if signaling header incomplete
This commit is contained in:
parent
335dba6a8f
commit
3d79ed3be2
@ -555,11 +555,15 @@ handle_l2cap_data_packet_for_signaling_connection(avdtp_connection_t *connection
|
|||||||
switch (message_type){
|
switch (message_type){
|
||||||
case AVDTP_CMD_MSG:
|
case AVDTP_CMD_MSG:
|
||||||
offset = avdtp_read_signaling_header(&connection->acceptor_signaling_packet, packet, size);
|
offset = avdtp_read_signaling_header(&connection->acceptor_signaling_packet, packet, size);
|
||||||
avdtp_acceptor_stream_config_subsm(connection, packet, size, offset);
|
if (offset > 0){
|
||||||
|
avdtp_acceptor_stream_config_subsm(connection, packet, size, offset);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
offset = avdtp_read_signaling_header(&connection->initiator_signaling_packet, packet, size);
|
offset = avdtp_read_signaling_header(&connection->initiator_signaling_packet, packet, size);
|
||||||
avdtp_initiator_stream_config_subsm(connection, packet, size, offset);
|
if (offset > 0) {
|
||||||
|
avdtp_initiator_stream_config_subsm(connection, packet, size, offset);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -154,9 +154,10 @@ avdtp_message_type_t avdtp_get_signaling_message_type(uint8_t * packet){
|
|||||||
return (avdtp_message_type_t) (packet[0] & 0x03);
|
return (avdtp_message_type_t) (packet[0] & 0x03);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// returns 0 if header incomplete
|
||||||
int avdtp_read_signaling_header(avdtp_signaling_packet_t * signaling_header, uint8_t * packet, uint16_t size){
|
int avdtp_read_signaling_header(avdtp_signaling_packet_t * signaling_header, uint8_t * packet, uint16_t size){
|
||||||
int pos = 0;
|
int pos = 0;
|
||||||
if (size < 2) return pos;
|
if (size < 2) return 0;
|
||||||
signaling_header->transaction_label = packet[pos] >> 4;
|
signaling_header->transaction_label = packet[pos] >> 4;
|
||||||
signaling_header->packet_type = (avdtp_packet_type_t)((packet[pos] >> 2) & 0x03);
|
signaling_header->packet_type = (avdtp_packet_type_t)((packet[pos] >> 2) & 0x03);
|
||||||
signaling_header->message_type = (avdtp_message_type_t) (packet[pos] & 0x03);
|
signaling_header->message_type = (avdtp_message_type_t) (packet[pos] & 0x03);
|
||||||
@ -173,7 +174,7 @@ int avdtp_read_signaling_header(avdtp_signaling_packet_t * signaling_header, uin
|
|||||||
break;
|
break;
|
||||||
case AVDTP_START_PACKET:
|
case AVDTP_START_PACKET:
|
||||||
signaling_header->num_packets = packet[pos++];
|
signaling_header->num_packets = packet[pos++];
|
||||||
if (pos < 3) return pos;
|
if (pos < 3) return 0;
|
||||||
signaling_header->size = 0;
|
signaling_header->size = 0;
|
||||||
signaling_header->offset = 0;
|
signaling_header->offset = 0;
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user