* [PATCH v5.10] ptp: Fix possible memory leak in ptp_clock_register()
@ 2025-07-28 8:11 Shivani Agarwal
2025-07-28 14:20 ` Sasha Levin
0 siblings, 1 reply; 2+ messages in thread
From: Shivani Agarwal @ 2025-07-28 8:11 UTC (permalink / raw)
To: stable, gregkh
Cc: bcm-kernel-feedback-list, linux-kernel, ajay.kaher,
alexey.makhalov, richardcochran, andrew+netdev, davem, edumazet,
kuba, pabeni, vdronov, netdev, Yang Yingliang, Hulk Robot,
Sasha Levin, Shivani Agarwal
From: Yang Yingliang <yangyingliang@huawei.com>
[ Upstream commit 4225fea1cb28370086e17e82c0f69bec2779dca0 ]
I got memory leak as follows when doing fault injection test:
unreferenced object 0xffff88800906c618 (size 8):
comm "i2c-idt82p33931", pid 4421, jiffies 4294948083 (age 13.188s)
hex dump (first 8 bytes):
70 74 70 30 00 00 00 00 ptp0....
backtrace:
[<00000000312ed458>] __kmalloc_track_caller+0x19f/0x3a0
[<0000000079f6e2ff>] kvasprintf+0xb5/0x150
[<0000000026aae54f>] kvasprintf_const+0x60/0x190
[<00000000f323a5f7>] kobject_set_name_vargs+0x56/0x150
[<000000004e35abdd>] dev_set_name+0xc0/0x100
[<00000000f20cfe25>] ptp_clock_register+0x9f4/0xd30 [ptp]
[<000000008bb9f0de>] idt82p33_probe.cold+0x8b6/0x1561 [ptp_idt82p33]
When posix_clock_register() returns an error, the name allocated
in dev_set_name() will be leaked, the put_device() should be used
to give up the device reference, then the name will be freed in
kobject_cleanup() and other memory will be freed in ptp_clock_release().
Reported-by: Hulk Robot <hulkci@huawei.com>
Fixes: a33121e5487b ("ptp: fix the race between the release of ptp_clock and cdev")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
[Shivani: Modified to apply on 5.10.y, Removed
kfree(ptp->vclock_index) in the ptach, since vclock_index is
introduced in later versions]
Signed-off-by: Shivani Agarwal <shivani.agarwal@broadcom.com>
---
drivers/ptp/ptp_clock.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/drivers/ptp/ptp_clock.c b/drivers/ptp/ptp_clock.c
index c895e26b1f17..869023f0987e 100644
--- a/drivers/ptp/ptp_clock.c
+++ b/drivers/ptp/ptp_clock.c
@@ -283,15 +283,20 @@ struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info,
/* Create a posix clock and link it to the device. */
err = posix_clock_register(&ptp->clock, &ptp->dev);
if (err) {
+ if (ptp->pps_source)
+ pps_unregister_source(ptp->pps_source);
+
+ if (ptp->kworker)
+ kthread_destroy_worker(ptp->kworker);
+
+ put_device(&ptp->dev);
+
pr_err("failed to create posix clock\n");
- goto no_clock;
+ return ERR_PTR(err);
}
return ptp;
-no_clock:
- if (ptp->pps_source)
- pps_unregister_source(ptp->pps_source);
no_pps:
ptp_cleanup_pin_groups(ptp);
no_pin_groups:
--
2.40.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v5.10] ptp: Fix possible memory leak in ptp_clock_register()
2025-07-28 8:11 [PATCH v5.10] ptp: Fix possible memory leak in ptp_clock_register() Shivani Agarwal
@ 2025-07-28 14:20 ` Sasha Levin
0 siblings, 0 replies; 2+ messages in thread
From: Sasha Levin @ 2025-07-28 14:20 UTC (permalink / raw)
To: stable, shivani.agarwal; +Cc: Sasha Levin
[ Sasha's backport helper bot ]
Hi,
Summary of potential issues:
⚠️ Found follow-up fixes in mainline
The upstream commit SHA1 provided is correct: 4225fea1cb28370086e17e82c0f69bec2779dca0
WARNING: Author mismatch between patch and upstream commit:
Backport author: Shivani Agarwal <shivani.agarwal@broadcom.com>
Commit author: Yang Yingliang <yangyingliang@huawei.com>
Status in newer kernel trees:
6.15.y | Present (exact SHA1)
6.12.y | Present (exact SHA1)
6.6.y | Present (exact SHA1)
6.1.y | Present (exact SHA1)
5.15.y | Present (exact SHA1)
Found fixes commits:
11195bf5a355 ptp: fix code indentation issues
Note: The patch differs from the upstream commit:
---
1: 4225fea1cb28 ! 1: ed4903766eee ptp: Fix possible memory leak in ptp_clock_register()
@@ Metadata
## Commit message ##
ptp: Fix possible memory leak in ptp_clock_register()
+ [ Upstream commit 4225fea1cb28370086e17e82c0f69bec2779dca0 ]
+
I got memory leak as follows when doing fault injection test:
unreferenced object 0xffff88800906c618 (size 8):
@@ Commit message
Fixes: a33121e5487b ("ptp: fix the race between the release of ptp_clock and cdev")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
+ Signed-off-by: Sasha Levin <sashal@kernel.org>
+ [Shivani: Modified to apply on 5.10.y, Removed
+ kfree(ptp->vclock_index) in the ptach, since vclock_index is
+ introduced in later versions]
+ Signed-off-by: Shivani Agarwal <shivani.agarwal@broadcom.com>
## drivers/ptp/ptp_clock.c ##
@@ drivers/ptp/ptp_clock.c: struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info,
/* Create a posix clock and link it to the device. */
err = posix_clock_register(&ptp->clock, &ptp->dev);
if (err) {
-+ if (ptp->pps_source)
-+ pps_unregister_source(ptp->pps_source);
-+
-+ kfree(ptp->vclock_index);
++ if (ptp->pps_source)
++ pps_unregister_source(ptp->pps_source);
+
+ if (ptp->kworker)
-+ kthread_destroy_worker(ptp->kworker);
++ kthread_destroy_worker(ptp->kworker);
+
+ put_device(&ptp->dev);
+
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| origin/linux-5.10.y | Success | Success |
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-07-28 14:20 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-28 8:11 [PATCH v5.10] ptp: Fix possible memory leak in ptp_clock_register() Shivani Agarwal
2025-07-28 14:20 ` Sasha Levin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox