RFCOMM: validate packet size with MTU -> log_error

This commit is contained in:
mila@ringwald.ch 2014-10-23 19:36:42 +00:00
parent 1f92e12a88
commit aeb32d01e7
2 changed files with 6 additions and 0 deletions

View File

@ -478,6 +478,7 @@ extern "C" {
#define RFCOMM_CHANNEL_ALREADY_REGISTERED 0x71
#define RFCOMM_NO_OUTGOING_CREDITS 0x72
#define RFCOMM_AGGREGATE_FLOW_OFF 0x73
#define RFCOMM_DATA_LEN_EXCEEDS_MTU 0x74
#define SDP_HANDLE_ALREADY_REGISTERED 0x80
#define SDP_QUERY_INCOMPLETE 0x81

View File

@ -2008,6 +2008,11 @@ int rfcomm_send_internal(uint16_t rfcomm_cid, uint8_t *data, uint16_t len){
log_error("rfcomm_send_internal cid 0x%02x doesn't exist!", rfcomm_cid);
return 1;
}
if (len > channel->max_frame_size){
log_error("rfcomm_send_internal cid 0x%02x, rfcomm data lenght exceeds MTU!", rfcomm_cid);
return RFCOMM_DATA_LEN_EXCEEDS_MTU;
}
if (!channel->credits_outgoing){
log_info("rfcomm_send_internal cid 0x%02x, no rfcomm outgoing credits!", rfcomm_cid);