Hi Vinicius, On Thu, Aug 11, 2016 at 1:14 AM, Vinicius Costa Gomes <vcgomes@xxxxxxxxx> wrote: > Since commit b5f34f9420b50 "Bluetooth: Fix bt_sock_recvmsg return value" > in the kernel, Bluetooth sockets of type SOCK_SEQPACKET, when read() > will return the size of the packet received, which can be larger than > the the buffer passed by user space. > > In this case the problem was causing a disconnection soon after > the reception of an SDP request. > > Reported by: Alban Browaeys <prahal@xxxxxxxxx> > --- > src/sdpd-server.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/src/sdpd-server.c b/src/sdpd-server.c > index c863508..b8190da 100644 > --- a/src/sdpd-server.c > +++ b/src/sdpd-server.c > @@ -164,7 +164,7 @@ static gboolean io_session_event(GIOChannel *chan, GIOCondition cond, gpointer d > } > > len = recv(sk, &hdr, sizeof(sdp_pdu_hdr_t), MSG_PEEK); > - if (len != sizeof(sdp_pdu_hdr_t)) { > + if (len < sizeof(sdp_pdu_hdr_t)) { > sdp_svcdb_collect_all(sk); > return FALSE; > } > -- > 2.9.2 Applied, note that I did have to include a cast since it was causing and signess comparison error. -- Luiz Augusto von Dentz -- 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