]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
misc: microchip: pci1xxxx: Fix a memory leak in the error handling of gp_aux_bus_probe()
authorYongzhi Liu <hyperlyzcs@gmail.com>
Thu, 23 May 2024 12:14:34 +0000 (20:14 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 4 Jun 2024 16:08:39 +0000 (18:08 +0200)
There is a memory leak (forget to free allocated buffers) in a
memory allocation failure path.

Fix it to jump to the correct error handling code.

Fixes: 393fc2f5948f ("misc: microchip: pci1xxxx: load auxiliary bus driver for the PIO function in the multi-function endpoint of pci1xxxx device.")
Signed-off-by: Yongzhi Liu <hyperlyzcs@gmail.com>
Reviewed-by: Kumaravel Thiagarajan <kumaravel.thiagarajan@microchip.com>
Link: https://lore.kernel.org/r/20240523121434.21855-4-hyperlyzcs@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/mchp_pci1xxxx/mchp_pci1xxxx_gp.c

index de75d89ef53e85a04ab6965a1c5b093199e553d0..34c9be437432a3390063da0df323c678439de3a1 100644 (file)
@@ -69,8 +69,10 @@ static int gp_aux_bus_probe(struct pci_dev *pdev, const struct pci_device_id *id
 
        aux_bus->aux_device_wrapper[1] = kzalloc(sizeof(*aux_bus->aux_device_wrapper[1]),
                                                 GFP_KERNEL);
-       if (!aux_bus->aux_device_wrapper[1])
-               return -ENOMEM;
+       if (!aux_bus->aux_device_wrapper[1]) {
+               retval =  -ENOMEM;
+               goto err_aux_dev_add_0;
+       }
 
        retval = ida_alloc(&gp_client_ida, GFP_KERNEL);
        if (retval < 0)