mirror of
https://github.com/torvalds/linux.git
synced 2026-09-11 20:13:02 +02:00
Bluetooth: btintel: propagate version TLV parsing errors
btintel_read_version_tlv() ignores the parser return value, so setup continues with partially initialized version data after a malformed TLV causes parsing to stop. Return the parser error to the caller so an invalid response fails setup instead of being treated as successful. Keep this behavioral change separate from the bounds checks so it can be reverted independently if an existing controller sends malformed data. Signed-off-by: Laxman Acharya Padhya <acharyalaxman8848@gmail.com> Reviewed-by: Ali Ahmet Memis <ali@iusegentoo.com> Tested-by: Kiran K <kiran.k@intel.com> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit is contained in:
parent
ac8aa9e0ec
commit
3a74624b5d
|
|
@ -721,6 +721,7 @@ static int btintel_read_version_tlv(struct hci_dev *hdev,
|
|||
{
|
||||
struct sk_buff *skb;
|
||||
const u8 param[1] = { 0xFF };
|
||||
int err;
|
||||
|
||||
if (!version)
|
||||
return -EINVAL;
|
||||
|
|
@ -739,10 +740,10 @@ static int btintel_read_version_tlv(struct hci_dev *hdev,
|
|||
return -EIO;
|
||||
}
|
||||
|
||||
btintel_parse_version_tlv(hdev, version, skb);
|
||||
err = btintel_parse_version_tlv(hdev, version, skb);
|
||||
|
||||
kfree_skb(skb);
|
||||
return 0;
|
||||
return err;
|
||||
}
|
||||
|
||||
/* ------- REGMAP IBT SUPPORT ------- */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user