2023-01-09 21:30:07

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH v2] Bluetooth: hci_sync: fix memory leak in hci_update_adv_data()

From: Zhengchao Shao <[email protected]>

When hci_cmd_sync_queue() failed in hci_update_adv_data(), inst_ptr is
not freed, which will cause memory leak, convert to use ERR_PTR/PTR_ERR
to pass the instance to callback so no memory needs to be allocated.

Fixes: 651cd3d65b0f ("Bluetooth: convert hci_update_adv_data to hci_sync")
Signed-off-by: Zhengchao Shao <[email protected]>
Signed-off-by: Luiz Augusto von Dentz <[email protected]>
---
net/bluetooth/hci_sync.c | 13 +++----------
1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
index b38a097344fb..117eedb6f709 100644
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
@@ -6187,20 +6187,13 @@ 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;
-
- *inst_ptr = instance;
- return hci_cmd_sync_queue(hdev, _update_adv_data_sync, inst_ptr, NULL);
+ return hci_cmd_sync_queue(hdev, _update_adv_data_sync,
+ ERR_PTR(instance), NULL);
}
--
2.37.3


2023-01-09 21:55:32

by bluez.test.bot

[permalink] [raw]
Subject: RE: [v2] Bluetooth: hci_sync: fix memory leak in hci_update_adv_data()

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=710258

---Test result---

Test Summary:
CheckPatch PASS 0.67 seconds
GitLint PASS 0.33 seconds
SubjectPrefix PASS 0.12 seconds
BuildKernel PASS 31.67 seconds
CheckAllWarning PASS 35.17 seconds
CheckSparse PASS 39.31 seconds
CheckSmatch PASS 108.95 seconds
BuildKernel32 PASS 30.51 seconds
TestRunnerSetup PASS 441.76 seconds
TestRunner_l2cap-tester PASS 16.00 seconds
TestRunner_iso-tester PASS 16.45 seconds
TestRunner_bnep-tester PASS 5.54 seconds
TestRunner_mgmt-tester PASS 107.57 seconds
TestRunner_rfcomm-tester PASS 8.77 seconds
TestRunner_sco-tester PASS 8.04 seconds
TestRunner_ioctl-tester PASS 9.25 seconds
TestRunner_mesh-tester PASS 6.85 seconds
TestRunner_smp-tester PASS 7.98 seconds
TestRunner_userchan-tester PASS 5.75 seconds
IncrementalBuild PASS 28.72 seconds



---
Regards,
Linux Bluetooth

2023-01-09 23:41:16

by patchwork-bot+bluetooth

[permalink] [raw]
Subject: Re: [PATCH v2] Bluetooth: hci_sync: fix memory leak in hci_update_adv_data()

Hello:

This patch was applied to bluetooth/bluetooth-next.git (master)
by Luiz Augusto von Dentz <[email protected]>:

On Mon, 9 Jan 2023 13:22:37 -0800 you wrote:
> From: Zhengchao Shao <[email protected]>
>
> When hci_cmd_sync_queue() failed in hci_update_adv_data(), inst_ptr is
> not freed, which will cause memory leak, convert to use ERR_PTR/PTR_ERR
> to pass the instance to callback so no memory needs to be allocated.
>
> Fixes: 651cd3d65b0f ("Bluetooth: convert hci_update_adv_data to hci_sync")
> Signed-off-by: Zhengchao Shao <[email protected]>
> Signed-off-by: Luiz Augusto von Dentz <[email protected]>
>
> [...]

Here is the summary with links:
- [v2] Bluetooth: hci_sync: fix memory leak in hci_update_adv_data()
https://git.kernel.org/bluetooth/bluetooth-next/c/e8b5fd71713b

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html