Patch "net: hns: fix possible memory leak in hnae_ae_register()" has been added to the 4.9-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    net: hns: fix possible memory leak in hnae_ae_register()

to the 4.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     net-hns-fix-possible-memory-leak-in-hnae_ae_register.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 664911d63cedf6bf5c847665f888a028af07925b
Author: Yang Yingliang <yangyingliang@xxxxxxxxxx>
Date:   Tue Oct 18 20:24:51 2022 +0800

    net: hns: fix possible memory leak in hnae_ae_register()
    
    [ Upstream commit ff2f5ec5d009844ec28f171123f9e58750cef4bf ]
    
    Inject fault while probing module, if device_register() fails,
    but the refcount of kobject is not decreased to 0, the name
    allocated in dev_set_name() is leaked. Fix this by calling
    put_device(), so that name can be freed in callback function
    kobject_cleanup().
    
    unreferenced object 0xffff00c01aba2100 (size 128):
      comm "systemd-udevd", pid 1259, jiffies 4294903284 (age 294.152s)
      hex dump (first 32 bytes):
        68 6e 61 65 30 00 00 00 18 21 ba 1a c0 00 ff ff  hnae0....!......
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<0000000034783f26>] slab_post_alloc_hook+0xa0/0x3e0
        [<00000000748188f2>] __kmem_cache_alloc_node+0x164/0x2b0
        [<00000000ab0743e8>] __kmalloc_node_track_caller+0x6c/0x390
        [<000000006c0ffb13>] kvasprintf+0x8c/0x118
        [<00000000fa27bfe1>] kvasprintf_const+0x60/0xc8
        [<0000000083e10ed7>] kobject_set_name_vargs+0x3c/0xc0
        [<000000000b87affc>] dev_set_name+0x7c/0xa0
        [<000000003fd8fe26>] hnae_ae_register+0xcc/0x190 [hnae]
        [<00000000fe97edc9>] hns_dsaf_ae_init+0x9c/0x108 [hns_dsaf]
        [<00000000c36ff1eb>] hns_dsaf_probe+0x548/0x748 [hns_dsaf]
    
    Fixes: 6fe6611ff275 ("net: add Hisilicon Network Subsystem hnae framework support")
    Signed-off-by: Yang Yingliang <yangyingliang@xxxxxxxxxx>
    Reviewed-by: Leon Romanovsky <leonro@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20221018122451.1749171-1-yangyingliang@xxxxxxxxxx
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/hisilicon/hns/hnae.c b/drivers/net/ethernet/hisilicon/hns/hnae.c
index 66e7a5fd4249..87ce15a12135 100644
--- a/drivers/net/ethernet/hisilicon/hns/hnae.c
+++ b/drivers/net/ethernet/hisilicon/hns/hnae.c
@@ -418,8 +418,10 @@ int hnae_ae_register(struct hnae_ae_dev *hdev, struct module *owner)
 	hdev->cls_dev.release = hnae_release;
 	(void)dev_set_name(&hdev->cls_dev, "hnae%d", hdev->id);
 	ret = device_register(&hdev->cls_dev);
-	if (ret)
+	if (ret) {
+		put_device(&hdev->cls_dev);
 		return ret;
+	}
 
 	__module_get(THIS_MODULE);
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux