Sungwoo Kim
19a7814396
Bluetooth: L2CAP: Fix u8 overflow
...
[ Upstream commit bcd70260ef56e0aee8a4fc6cd214a419900b0765 ]
By keep sending L2CAP_CONF_REQ packets, chan->num_conf_rsp increases
multiple times and eventually it will wrap around the maximum number
(i.e., 255).
This patch prevents this by adding a boundary check with
L2CAP_MAX_CONF_RSP
Btmon log:
Bluetooth monitor ver 5.64
= Note: Linux version 6.1.0-rc2 (x86_64) 0.264594
= Note: Bluetooth subsystem version 2.22 0.264636
@ MGMT Open: btmon (privileged) version 1.22 {0x0001} 0.272191
= New Index: 00:00:00:00:00:00 (Primary,Virtual,hci0) [hci0] 13.877604
@ RAW Open: 9496 (privileged) version 2.22 {0x0002} 13.890741
= Open Index: 00:00:00:00:00:00 [hci0] 13.900426
(...)
> ACL Data RX: Handle 200 flags 0x00 dlen 1033 #32 [hci0] 14.273106
invalid packet size (12 != 1033)
08 00 01 00 02 01 04 00 01 10 ff ff ............
> ACL Data RX: Handle 200 flags 0x00 dlen 1547 #33 [hci0] 14.273561
invalid packet size (14 != 1547)
0a 00 01 00 04 01 06 00 40 00 00 00 00 00 ........@.....
> ACL Data RX: Handle 200 flags 0x00 dlen 2061 #34 [hci0] 14.274390
invalid packet size (16 != 2061)
0c 00 01 00 04 01 08 00 40 00 00 00 00 00 00 04 ........@.......
> ACL Data RX: Handle 200 flags 0x00 dlen 2061 #35 [hci0] 14.274932
invalid packet size (16 != 2061)
0c 00 01 00 04 01 08 00 40 00 00 00 07 00 03 00 ........@.......
= bluetoothd: Bluetooth daemon 5.43 14.401828
> ACL Data RX: Handle 200 flags 0x00 dlen 1033 #36 [hci0] 14.275753
invalid packet size (12 != 1033)
08 00 01 00 04 01 04 00 40 00 00 00 ........@...
Signed-off-by: Sungwoo Kim <iam@sung-woo.kim>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-21 17:36:38 +01:00
..
2021-07-22 16:19:03 +02:00
2022-12-14 11:37:17 +01:00
2021-08-13 16:30:35 -07:00
2022-08-31 17:16:37 +02:00
2021-07-23 14:20:25 +01:00
2022-10-29 10:12:55 +02:00
2022-06-22 14:22:01 +02:00
2022-07-29 17:25:07 +02:00
2022-12-21 17:36:38 +01:00
2022-11-26 09:24:35 +01:00
2022-11-26 09:24:40 +01:00
2022-11-26 09:24:39 +01:00
2022-12-14 11:37:22 +01:00
2022-05-25 09:57:28 +02:00
2022-12-02 17:41:04 +01:00
2022-03-08 19:12:52 +01:00
2022-12-02 17:41:07 +01:00
2022-08-03 12:03:51 +02:00
2022-12-14 11:37:25 +01:00
2021-08-03 13:05:26 +01:00
2022-11-03 23:59:14 +09:00
2022-12-08 11:28:41 +01:00
2022-11-03 23:59:14 +09:00
2022-12-14 11:37:28 +01:00
2022-12-14 11:37:29 +01:00
2021-08-09 10:13:32 +01:00
2022-11-26 09:24:50 +01:00
2022-12-02 17:41:06 +01:00
2022-06-22 14:21:58 +02:00
2022-04-27 14:38:53 +02:00
2022-03-28 09:58:46 +02:00
2022-12-08 11:28:40 +01:00
2022-12-14 11:37:25 +01:00
2022-11-16 09:58:22 +01:00
2022-09-08 12:28:07 +02:00
2022-08-31 17:16:50 +02:00
2022-01-05 12:42:37 +01:00
2022-12-14 11:37:23 +01:00
2022-04-13 20:59:10 +02:00
2022-08-25 11:40:25 +02:00
2022-01-27 11:04:00 +01:00
2022-12-14 11:37:27 +01:00
2022-12-02 17:41:04 +01:00
2022-12-08 11:28:41 +01:00
2022-01-11 15:35:16 +01:00
2022-08-25 11:40:29 +02:00
2022-10-26 12:34:49 +02:00
2022-04-08 14:23:00 +02:00
2022-11-10 18:15:29 +01:00
2022-12-02 17:41:04 +01:00
2022-12-02 17:41:06 +01:00
2022-12-08 11:28:41 +01:00
2022-11-10 18:15:31 +01:00
2021-11-18 19:17:11 +01:00
2022-11-10 18:15:26 +01:00
2021-08-04 12:35:07 +01:00
2022-12-14 11:37:29 +01:00
2022-08-03 12:03:47 +02:00
2022-12-14 11:37:24 +01:00
2022-11-10 18:15:31 +01:00
2022-12-08 11:28:40 +01:00
2022-11-26 09:24:41 +01:00
2022-10-26 12:34:40 +02:00
2022-12-02 17:41:02 +01:00
2021-07-29 15:06:49 +01:00
2021-07-29 15:06:49 +01:00
2022-08-31 17:16:45 +02:00