Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Bluetooth: hci_h4: Fix padding calculation error within h4_recv_buf()

it is erroneous to calculate padding by subtracting length of type
indication from skb->len, it will cause data analysis error for
alignment which is greater than 1, so fixed by adding length of type
indication with skb->len.

Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

authored by

Zijun Hu and committed by
Marcel Holtmann
dd2ac1d6 258f56d1

+2 -2
+2 -2
drivers/bluetooth/hci_h4.c
··· 252 252 } 253 253 254 254 if (!dlen) { 255 - hu->padding = (skb->len - 1) % alignment; 255 + hu->padding = (skb->len + 1) % alignment; 256 256 hu->padding = (alignment - hu->padding) % alignment; 257 257 258 258 /* No more data, complete frame */ ··· 260 260 skb = NULL; 261 261 } 262 262 } else { 263 - hu->padding = (skb->len - 1) % alignment; 263 + hu->padding = (skb->len + 1) % alignment; 264 264 hu->padding = (alignment - hu->padding) % alignment; 265 265 266 266 /* Complete frame */