diff mbox series

[v2] Bluetooth: hci_sync: fix memory leak in hci_update_adv_data()

Message ID 20230110064420.3409168-1-shaozhengchao@huawei.com (mailing list archive)
State New, archived
Headers show
Series [v2] Bluetooth: hci_sync: fix memory leak in hci_update_adv_data() | expand

Checks

Context Check Description
tedd_an/pre-ci_am fail error: patch failed: net/bluetooth/hci_sync.c:6187 error: net/bluetooth/hci_sync.c: patch does not apply hint: Use 'git am --show-current-patch' to see the failed patch

Commit Message

shaozhengchao Jan. 10, 2023, 6:44 a.m. UTC
When hci_cmd_sync_queue() failed in hci_update_adv_data(), inst_ptr is
not freed, which will cause memory leak. ERR_PTR/PTR_ERR is used to
replace memory allocation to simplify code.

Fixes: 651cd3d65b0f ("Bluetooth: convert hci_update_adv_data to hci_sync")
Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
---
v2: Use ERR_PTR/PTR_ERR to replace memory allocation
---
 net/bluetooth/hci_sync.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

Comments

bluez.test.bot@gmail.com Jan. 10, 2023, 6:42 a.m. UTC | #1
This is an automated email and please do not reply to this email.

Dear Submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
While preparing the CI tests, the patches you submitted couldn't be applied to the current HEAD of the repository.

----- Output -----

error: patch failed: net/bluetooth/hci_sync.c:6187
error: net/bluetooth/hci_sync.c: patch does not apply
hint: Use 'git am --show-current-patch' to see the failed patch

Please resolve the issue and submit the patches again.


---
Regards,
Linux Bluetooth
shaozhengchao Jan. 10, 2023, 7:05 a.m. UTC | #2
Sorry for Repeatedly senting. Please ignore this patch.

On 2023/1/10 14:44, Zhengchao Shao wrote:
> When hci_cmd_sync_queue() failed in hci_update_adv_data(), inst_ptr is
> not freed, which will cause memory leak. ERR_PTR/PTR_ERR is used to
> replace memory allocation to simplify code.
> 
> Fixes: 651cd3d65b0f ("Bluetooth: convert hci_update_adv_data to hci_sync")
> Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
> ---
> v2: Use ERR_PTR/PTR_ERR to replace memory allocation
> ---
>   net/bluetooth/hci_sync.c | 10 ++--------
>   1 file changed, 2 insertions(+), 8 deletions(-)
> 
> diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
> index 9e2d7e4b850c..8744bbecac9e 100644
> --- a/net/bluetooth/hci_sync.c
> +++ b/net/bluetooth/hci_sync.c
> @@ -6187,20 +6187,14 @@ int hci_get_random_address(struct hci_dev *hdev, bool require_privacy,
>   
>   static int _update_adv_data_sync(struct hci_dev *hdev, void *data)
>   {
> -	u8 instance = *(u8 *)data;
> -
> -	kfree(data);
> +	u8 instance = PTR_ERR(data);
>   
>   	return hci_update_adv_data_sync(hdev, instance);
>   }
>   
>   int hci_update_adv_data(struct hci_dev *hdev, u8 instance)
>   {
> -	u8 *inst_ptr = kmalloc(1, GFP_KERNEL);
> -
> -	if (!inst_ptr)
> -		return -ENOMEM;
> +	u8 *inst_ptr = ERR_PTR(instance);
>   
> -	*inst_ptr = instance;
>   	return hci_cmd_sync_queue(hdev, _update_adv_data_sync, inst_ptr, NULL);
>   }
diff mbox series

Patch

diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
index 9e2d7e4b850c..8744bbecac9e 100644
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
@@ -6187,20 +6187,14 @@  int hci_get_random_address(struct hci_dev *hdev, bool require_privacy,
 
 static int _update_adv_data_sync(struct hci_dev *hdev, void *data)
 {
-	u8 instance = *(u8 *)data;
-
-	kfree(data);
+	u8 instance = PTR_ERR(data);
 
 	return hci_update_adv_data_sync(hdev, instance);
 }
 
 int hci_update_adv_data(struct hci_dev *hdev, u8 instance)
 {
-	u8 *inst_ptr = kmalloc(1, GFP_KERNEL);
-
-	if (!inst_ptr)
-		return -ENOMEM;
+	u8 *inst_ptr = ERR_PTR(instance);
 
-	*inst_ptr = instance;
 	return hci_cmd_sync_queue(hdev, _update_adv_data_sync, inst_ptr, NULL);
 }