Bluetooth: When encryption is dropped, do not send RFCOMM packets
authorJaikumar Ganesh <jaikumar@google.com>
Tue, 3 Feb 2009 02:03:57 +0000 (18:03 -0800)
committerMarcel Holtmann <marcel@holtmann.org>
Fri, 27 Feb 2009 05:14:35 +0000 (06:14 +0100)
During a role change with pre-Bluetooth 2.1 devices, the remote side drops
the encryption of the RFCOMM connection. We allow a grace period for the
encryption to be re-established, before dropping the connection. During
this grace period, the RFCOMM_SEC_PENDING flag is set. Check this flag
before sending RFCOMM packets.

Signed-off-by: Jaikumar Ganesh <jaikumar@google.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/rfcomm/core.c

index ad0e25a21832edaac0840a00755534f429f17e86..3717c25ba33a1d94d1ef63c4e40e79a1d766410e 100644 (file)
@@ -1749,6 +1749,9 @@ static inline void rfcomm_process_dlcs(struct rfcomm_session *s)
                        continue;
                }
 
+               if (test_bit(RFCOMM_SEC_PENDING, &d->flags))
+                       continue;
+
                if (test_bit(RFCOMM_TX_THROTTLED, &s->flags))
                        continue;