Patch "pcmcia: rsrc_nonstatic: Fix memory leak in nonstatic_release_resource_db()" has been added to the 6.4-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

    pcmcia: rsrc_nonstatic: Fix memory leak in nonstatic_release_resource_db()

to the 6.4-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:
     pcmcia-rsrc_nonstatic-fix-memory-leak-in-nonstatic_r.patch
and it can be found in the queue-6.4 subdirectory.

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



commit cf7283d8179d4fedd4683b12325975ccf00f0422
Author: Armin Wolf <W_Armin@xxxxxx>
Date:   Fri May 12 20:45:29 2023 +0200

    pcmcia: rsrc_nonstatic: Fix memory leak in nonstatic_release_resource_db()
    
    [ Upstream commit c85fd9422fe0f5d667305efb27f56d09eab120b0 ]
    
    When nonstatic_release_resource_db() frees all resources associated
    with an PCMCIA socket, it forgets to free socket_data too, causing
    a memory leak observable with kmemleak:
    
    unreferenced object 0xc28d1000 (size 64):
      comm "systemd-udevd", pid 297, jiffies 4294898478 (age 194.484s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 f0 85 0e c3 00 00 00 00  ................
        00 00 00 00 0c 10 8d c2 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<ffda4245>] __kmem_cache_alloc_node+0x2d7/0x4a0
        [<7e51f0c8>] kmalloc_trace+0x31/0xa4
        [<d52b4ca0>] nonstatic_init+0x24/0x1a4 [pcmcia_rsrc]
        [<a2f13e08>] pcmcia_register_socket+0x200/0x35c [pcmcia_core]
        [<a728be1b>] yenta_probe+0x4d8/0xa70 [yenta_socket]
        [<c48fac39>] pci_device_probe+0x99/0x194
        [<84b7c690>] really_probe+0x181/0x45c
        [<8060fe6e>] __driver_probe_device+0x75/0x1f4
        [<b9b76f43>] driver_probe_device+0x28/0xac
        [<648b766f>] __driver_attach+0xeb/0x1e4
        [<6e9659eb>] bus_for_each_dev+0x61/0xb4
        [<25a669f3>] driver_attach+0x1e/0x28
        [<d8671d6b>] bus_add_driver+0x102/0x20c
        [<df0d323c>] driver_register+0x5b/0x120
        [<942cd8a4>] __pci_register_driver+0x44/0x4c
        [<e536027e>] __UNIQUE_ID___addressable_cleanup_module188+0x1c/0xfffff000 [iTCO_vendor_support]
    
    Fix this by freeing socket_data too.
    
    Tested on a Acer Travelmate 4002WLMi by manually binding/unbinding
    the yenta_cardbus driver (yenta_socket).
    
    Signed-off-by: Armin Wolf <W_Armin@xxxxxx>
    Message-ID: <20230512184529.5094-1-W_Armin@xxxxxx>
    Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/pcmcia/rsrc_nonstatic.c b/drivers/pcmcia/rsrc_nonstatic.c
index 471e0c5815f39..bf9d070a44966 100644
--- a/drivers/pcmcia/rsrc_nonstatic.c
+++ b/drivers/pcmcia/rsrc_nonstatic.c
@@ -1053,6 +1053,8 @@ static void nonstatic_release_resource_db(struct pcmcia_socket *s)
 		q = p->next;
 		kfree(p);
 	}
+
+	kfree(data);
 }
 
 



[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