mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 04:53:36 +01:00
bluetooth pull request for net:
- hci: fix null-ptr-deref in hci_read_supported_codecs -----BEGIN PGP SIGNATURE----- iQJNBAABCAA3FiEE7E6oRXp8w05ovYr/9JCA4xAyCykFAmcigO0ZHGx1aXoudm9u LmRlbnR6QGludGVsLmNvbQAKCRD0kIDjEDILKWojEACFiQEIQp/tMqOyaGFDemka EQCidCIp5uzKqV2G0FlWDl6i8q152qtdJu1wgKIq7F5fWLTlHXc0rdq9wopn2IPC f5KWkUutZizk8TlhN1HkkXnaHzqiWwuK8TYxXxVkC1y/E4eBvwhNdyATAbMQFJdy HTo0jO6OK8CDKnNCEXpMdd53Iov33KSpYE/OpfAzVPvspOk96bx34RSjVpcaX8Qa IoLZ1QS4crK/ETbAW6Ysy5ZyqpQphvl/O+0Fw7baOvj2iziX6K1k5sE18QbrlqFB N+DIgMC6sBpogv2OD13eGQWvSX51G2V60Fk9fHQEJo4BDoiE2oRtDZlWkxFl64VK kpzwswW/tUEw2xYFt/pgCM/QZ8KXh8oVHwo4HTP45TbpIP3nJcz0xuT7ChVzy2mF T3JQLR7W7w89OOsoaOezk+MS1UdL/tB4RsMG5Edb1SBS48fGI0yqIi/O58iqWeTu SfjacEjAizlzPgLxoUeVFqYzHOFJa89BsFzTU3rs+9z8+DBwfW44J10EP9i2tDhP lqseqLErItx47gdOy7HgWpjRmOraa36syjvL8bRXcbnhBVT4RjmJDWgM+NcIOkXB T0Y4I+u0ppoCxvHES/tCQ19C9Uj65XfPSZxzKDu76ecEqR6uMHaXoO196SWj1VSB Gqr/qDbdW9yvsCHCIYcwGQ== =mno/ -----END PGP SIGNATURE----- Merge tag 'for-net-2024-10-30' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth Luiz Augusto von Dentz says: ==================== bluetooth pull request for net: - hci: fix null-ptr-deref in hci_read_supported_codecs * tag 'for-net-2024-10-30' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth: Bluetooth: hci: fix null-ptr-deref in hci_read_supported_codecs ==================== Link: https://patch.msgid.link/20241030192205.38298-1-luiz.dentz@gmail.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
commit
ee802a4954
1 changed files with 11 additions and 7 deletions
|
@ -206,6 +206,12 @@ struct sk_buff *__hci_cmd_sync_sk(struct hci_dev *hdev, u16 opcode, u32 plen,
|
||||||
return ERR_PTR(err);
|
return ERR_PTR(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If command return a status event skb will be set to NULL as there are
|
||||||
|
* no parameters.
|
||||||
|
*/
|
||||||
|
if (!skb)
|
||||||
|
return ERR_PTR(-ENODATA);
|
||||||
|
|
||||||
return skb;
|
return skb;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(__hci_cmd_sync_sk);
|
EXPORT_SYMBOL(__hci_cmd_sync_sk);
|
||||||
|
@ -255,6 +261,11 @@ int __hci_cmd_sync_status_sk(struct hci_dev *hdev, u16 opcode, u32 plen,
|
||||||
u8 status;
|
u8 status;
|
||||||
|
|
||||||
skb = __hci_cmd_sync_sk(hdev, opcode, plen, param, event, timeout, sk);
|
skb = __hci_cmd_sync_sk(hdev, opcode, plen, param, event, timeout, sk);
|
||||||
|
|
||||||
|
/* If command return a status event, skb will be set to -ENODATA */
|
||||||
|
if (skb == ERR_PTR(-ENODATA))
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (IS_ERR(skb)) {
|
if (IS_ERR(skb)) {
|
||||||
if (!event)
|
if (!event)
|
||||||
bt_dev_err(hdev, "Opcode 0x%4.4x failed: %ld", opcode,
|
bt_dev_err(hdev, "Opcode 0x%4.4x failed: %ld", opcode,
|
||||||
|
@ -262,13 +273,6 @@ int __hci_cmd_sync_status_sk(struct hci_dev *hdev, u16 opcode, u32 plen,
|
||||||
return PTR_ERR(skb);
|
return PTR_ERR(skb);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If command return a status event skb will be set to NULL as there are
|
|
||||||
* no parameters, in case of failure IS_ERR(skb) would have be set to
|
|
||||||
* the actual error would be found with PTR_ERR(skb).
|
|
||||||
*/
|
|
||||||
if (!skb)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
status = skb->data[0];
|
status = skb->data[0];
|
||||||
|
|
||||||
kfree_skb(skb);
|
kfree_skb(skb);
|
||||||
|
|
Loading…
Reference in a new issue