From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> This split the handling of invalid PDU length and not matching transaction id adding proper debug logs. --- lib/sdp.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/sdp.c b/lib/sdp.c index 1f19953..2107e28 100644 --- a/lib/sdp.c +++ b/lib/sdp.c @@ -4181,10 +4181,15 @@ int sdp_process(sdp_session_t *session) goto end; } - if (n == 0 || reqhdr->tid != rsphdr->tid || - (n != (int) (ntohs(rsphdr->plen) + sizeof(sdp_pdu_hdr_t)))) { + if (reqhdr->tid != rsphdr->tid) { t->err = EPROTO; - SDPERR("Protocol error."); + SDPERR("Protocol error: transaction id does not match"); + goto end; + } + + if (n != (int) (ntohs(rsphdr->plen) + sizeof(sdp_pdu_hdr_t))) { + t->err = EPROTO; + SDPERR("Protocol error: invalid length"); goto end; } -- 1.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html