From 685f1dc43eed281640d99179ea81352147725cca Mon Sep 17 00:00:00 2001 From: Damien Merenne Date: Tue, 8 Apr 2025 14:37:02 +0000 Subject: [PATCH] Fix L2CAP signaling packet identifiers According to the Bluetooth Core Spec, Volume 3, Part A, Section 4, 0x00 is an invalid identifier: 4. Signaling packet formats ... Identifier (1 octet) ... Signaling identifier 0x00 is an invalid identifier and shall never be used in any command. --- bumble/l2cap.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bumble/l2cap.py b/bumble/l2cap.py index fdd76fc5..f82a31a2 100644 --- a/bumble/l2cap.py +++ b/bumble/l2cap.py @@ -1521,6 +1521,9 @@ class ChannelManager: def next_identifier(self, connection: Connection) -> int: identifier = (self.identifiers.setdefault(connection.handle, 0) + 1) % 256 + # 0x00 is an invalid ID (BT Core Spec, Vol 3, Part A, Sect 4 + if identifier == 0: + identifier = 1 self.identifiers[connection.handle] = identifier return identifier