linux/drivers/uio
Dan Carpenter 63f8d90115 uio: Fix an Oops on load
commit 432798195b upstream.

I was trying to solve a double free but I introduced a more serious
NULL dereference bug.  The problem is that if there is an IRQ which
triggers immediately, then we need "info->uio_dev" but it's not set yet.

This patch puts the original initialization back to how it was and just
sets info->uio_dev to NULL on the error path so it should solve both
the Oops and the double free.

Fixes: f019f07ecf ("uio: potential double frees if __uio_register_device() fails")
Reported-by: Mathias Thore <Mathias.Thore@infinera.com>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Tested-by: Mathias Thore <Mathias.Thore@infinera.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2019-02-11 17:54:00 +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: Fix an Oops on load 2019-02-11 17:54:00 +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