Message ID | 20230110064420.3409168-1-shaozhengchao@huawei.com |
---|---|
State | New |
Headers | show |
Series | [v2] Bluetooth: hci_sync: fix memory leak in hci_update_adv_data() | expand |
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
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); }
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(-)