drivers/bluetooth/btintel_pcie.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
kzalloc() already zero-initializes the destination buffer 'data', making
strscpy() sufficient for safely copying 'name'. The additional
NUL-padding performed by strscpy_pad() is unnecessary.
Add a new local variable to store the length of 'name' and reuse it
instead of recalculating the same length.
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
drivers/bluetooth/btintel_pcie.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/bluetooth/btintel_pcie.c b/drivers/bluetooth/btintel_pcie.c
index 6e7bbbd35279..aad03f8a3e13 100644
--- a/drivers/bluetooth/btintel_pcie.c
+++ b/drivers/bluetooth/btintel_pcie.c
@@ -2236,6 +2236,7 @@ btintel_pcie_get_recovery(struct pci_dev *pdev, struct device *dev)
{
struct btintel_pcie_dev_recovery *tmp, *data = NULL;
const char *name = pci_name(pdev);
+ const size_t name_len = strlen(name) + 1;
struct hci_dev *hdev = to_hci_dev(dev);
spin_lock(&btintel_pcie_recovery_lock);
@@ -2252,11 +2253,11 @@ btintel_pcie_get_recovery(struct pci_dev *pdev, struct device *dev)
return data;
}
- data = kzalloc(struct_size(data, name, strlen(name) + 1), GFP_ATOMIC);
+ data = kzalloc(struct_size(data, name, name_len), GFP_ATOMIC);
if (!data)
return NULL;
- strscpy_pad(data->name, name, strlen(name) + 1);
+ strscpy(data->name, name, name_len);
spin_lock(&btintel_pcie_recovery_lock);
list_add_tail(&data->list, &btintel_pcie_recovery_list);
spin_unlock(&btintel_pcie_recovery_lock);
--
2.50.1
Dear Thorsten,
Thank you for the patch.
Am 11.08.25 um 11:19 schrieb Thorsten Blum:
> kzalloc() already zero-initializes the destination buffer 'data', making
> strscpy() sufficient for safely copying 'name'. The additional
> NUL-padding performed by strscpy_pad() is unnecessary.
>
> Add a new local variable to store the length of 'name' and reuse it
> instead of recalculating the same length.
>
> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
> ---
> drivers/bluetooth/btintel_pcie.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/bluetooth/btintel_pcie.c b/drivers/bluetooth/btintel_pcie.c
> index 6e7bbbd35279..aad03f8a3e13 100644
> --- a/drivers/bluetooth/btintel_pcie.c
> +++ b/drivers/bluetooth/btintel_pcie.c
> @@ -2236,6 +2236,7 @@ btintel_pcie_get_recovery(struct pci_dev *pdev, struct device *dev)
> {
> struct btintel_pcie_dev_recovery *tmp, *data = NULL;
> const char *name = pci_name(pdev);
> + const size_t name_len = strlen(name) + 1;
> struct hci_dev *hdev = to_hci_dev(dev);
>
> spin_lock(&btintel_pcie_recovery_lock);
> @@ -2252,11 +2253,11 @@ btintel_pcie_get_recovery(struct pci_dev *pdev, struct device *dev)
> return data;
> }
>
> - data = kzalloc(struct_size(data, name, strlen(name) + 1), GFP_ATOMIC);
> + data = kzalloc(struct_size(data, name, name_len), GFP_ATOMIC);
> if (!data)
> return NULL;
>
> - strscpy_pad(data->name, name, strlen(name) + 1);
> + strscpy(data->name, name, name_len);
> spin_lock(&btintel_pcie_recovery_lock);
> list_add_tail(&data->list, &btintel_pcie_recovery_list);
> spin_unlock(&btintel_pcie_recovery_lock);
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Kind regards,
Paul
© 2016 - 2026 Red Hat, Inc.