linux-brain/drivers/uio
Dan Carpenter 2b6c7457d3 uio: potential double frees if __uio_register_device() fails
[ Upstream commit f019f07ecf ]

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: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-09-19 22:47:13 +02:00
..
Kconfig uio: UIO_PRUSS should depend on HAS_DMA 2015-08-05 13:25:59 -07:00
Makefile uio: uio_fsl_elbc_gpcm: new driver 2015-01-12 05:04:13 -08: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 2016-08-31 13:07:30 +02:00
uio_fsl_elbc_gpcm.c uio: uio_fsl_elbc_gpcm: Fix module autoload for OF platform driver 2015-10-04 12:32:25 +01: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: don't return zero on failure path in probe() 2015-01-12 05:04:12 -08:00
uio_pdrv_genirq.c Revert "uio: constify of_device_id array" 2015-04-03 16:04:21 +02:00
uio_pruss.c uio: pruss: Include <linux/sizes.h> 2015-06-12 17:01:43 -07:00
uio_sercos3.c uio: uio_sercos3: remove unnecessary pci_set_drvdata() 2013-09-26 08:47:25 -07:00
uio.c uio: potential double frees if __uio_register_device() fails 2018-09-19 22:47:13 +02:00