linux/drivers/uio
Dan Carpenter 618a41aecf uio: potential double frees if __uio_register_device() fails
commit f019f07ecf upstream.

The uio_unregister_device() function assumes that if "info->uio_dev" is
non-NULL that means "info" is fully allocated.  Setting info->uio_de
has to be the last thing in the function.

In the current code, if request_threaded_irq() fails then we return with
info->uio_dev set to non-NULL but info is not fully allocated and it can
lead to double frees.

Fixes: beafc54c4e ("UIO: Add the User IO core code")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2018-12-16 22:08:32 +00:00
..
Kconfig drivers: uio: Kconfig: add MMU dependancy for UIO 2013-08-30 14:19:46 -07:00
Makefile drivers: uio: Add driver for Humusoft MF624 DAQ PCI card 2013-08-30 12:12:49 -07:00
uio.c uio: potential double frees if __uio_register_device() fails 2018-12-16 22:08:32 +00:00
uio_aec.c uio: uio_aec: remove unnecessary pci_set_drvdata() 2013-09-26 08:47:25 -07:00
uio_cif.c uio: uio_cif: remove unnecessary pci_set_drvdata() 2013-09-26 08:47:25 -07:00
uio_dmem_genirq.c uio: fix dmem_region_start computation 2017-02-23 03:53:56 +00:00
uio_mf624.c uio: uio_mf624: remove DEFINE_PCI_DEVICE_TABLE macro 2013-12-08 22:41:48 -08:00
uio_netx.c uio: uio_netx: remove unnecessary pci_set_drvdata() 2013-09-26 08:47:25 -07:00
uio_pci_generic.c uio/uio_pci_generic: Use module_pci_driver to register driver 2013-05-21 13:59:25 -07:00
uio_pdrv_genirq.c uio: Simplify uio error path by using devres functions 2013-09-26 08:46:45 -07:00
uio_pruss.c drivers/uio/uio_pruss.c: use gen_pool_dma_alloc() to allocate sram memory 2013-11-13 12:09:23 +09:00
uio_sercos3.c uio: uio_sercos3: remove unnecessary pci_set_drvdata() 2013-09-26 08:47:25 -07:00