Yang Yingliang 4225fea1cb ptp: Fix possible memory leak in ptp_clock_register()
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>
2021-10-20 14:44:33 +01:00
..
2021-10-12 11:16:38 -07:00
2021-10-11 17:25:08 -07:00
2021-09-01 08:44:42 -07:00
2021-09-07 12:38:59 -07:00
2021-09-09 11:48:27 -07:00
2021-09-09 11:39:57 -07:00
2021-09-08 11:50:26 -07:00
2021-09-09 11:07:47 -07:00
2021-09-30 12:11:35 -07:00
2021-10-08 11:57:54 -07:00
2021-09-15 17:18:56 -07:00
2021-10-08 11:57:54 -07:00
2021-10-08 11:57:54 -07:00
2021-09-01 08:44:42 -07:00
2021-09-07 12:38:59 -07:00
2021-10-08 11:57:54 -07:00
2021-10-20 14:43:53 +01:00
2021-10-08 16:46:09 -07:00
2021-09-20 12:43:34 +01:00
2021-09-01 15:25:28 -07:00
2021-10-01 14:45:23 -07:00
2021-09-01 08:44:42 -07:00
2021-10-07 21:13:57 +02:00
2021-09-01 10:29:29 -07:00
2021-09-22 11:58:24 -07:00
2021-10-04 09:53:40 -07:00
2021-10-08 12:55:23 -07:00
2021-10-08 10:16:01 -07:00
2021-09-28 07:27:29 -07:00
2021-10-08 12:55:23 -07:00