• Shang XiaoJing's avatar
    rtc: class: Fix potential memleak in devm_rtc_allocate_device() · 60da7380
    Shang XiaoJing authored
    devm_rtc_allocate_device() will alloc a rtc_device first, and then run
    dev_set_name(). If dev_set_name() failed, the rtc_device will memleak.
    Move devm_add_action_or_reset() in front of dev_set_name() to prevent
    memleak.
    
    unreferenced object 0xffff888110a53000 (size 2048):
      comm "python3", pid 470, jiffies 4296078308 (age 58.882s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 08 30 a5 10 81 88 ff ff  .........0......
        08 30 a5 10 81 88 ff ff 00 00 00 00 00 00 00 00  .0..............
      backtrace:
        [<000000004aac0364>] kmalloc_trace+0x21/0x110
        [<000000000ff02202>] devm_rtc_allocate_device+0xd4/0x400
        [<000000001bdf5639>] devm_rtc_device_register+0x1a/0x80
        [<00000000351bf81c>] rx4581_probe+0xdd/0x110 [rtc_rx4581]
        [<00000000f0eba0ae>] spi_probe+0xde/0x130
        [<00000000bff89ee8>] really_probe+0x175/0x3f0
        [<00000000128e8d84>] __driver_probe_device+0xe6/0x170
        [<00000000ee5bf913>] device_driver_attach+0x32/0x...
    60da7380
class.c 12.7 KB