linux_dsm_epyc7002/drivers/net/ethernet/qualcomm
Sean Tranchetti e7a86c687e net: qualcomm: rmnet: Fix potential UAF when unregistering
During the exit/unregistration process of the RmNet driver, the function
rmnet_unregister_real_device() is called to handle freeing the driver's
internal state and removing the RX handler on the underlying physical
device. However, the order of operations this function performs is wrong
and can lead to a use after free of the rmnet_port structure.

Before calling netdev_rx_handler_unregister(), this port structure is
freed with kfree(). If packets are received on any RmNet devices before
synchronize_net() completes, they will attempt to use this already-freed
port structure when processing the packet. As such, before cleaning up any
other internal state, the RX handler must be unregistered in order to
guarantee that no further packets will arrive on the device.

Fixes: ceed73a2cf ("drivers: net: ethernet: qualcomm: rmnet: Initial implementation")
Signed-off-by: Sean Tranchetti <stranche@codeaurora.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-11-05 18:18:03 -08:00
..
emac net: qcom/emac: use devm_platform_ioremap_resource() to simplify code 2019-08-01 13:10:34 -04:00
rmnet net: qualcomm: rmnet: Fix potential UAF when unregistering 2019-11-05 18:18:03 -08:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
qca_7k_common.c net: qualcomm: make qca_7k_common a separate kernel module 2017-05-30 13:57:30 -04:00
qca_7k_common.h net: qualcomm: add QCA7000 UART driver 2017-05-30 13:57:32 -04:00
qca_7k.c net: qca_spi: Introduce write register verification 2018-09-24 12:26:06 -07:00
qca_7k.h net: qca_spi: Introduce write register verification 2018-09-24 12:26:06 -07:00
qca_debug.c qca: no need to check return value of debugfs_create functions 2019-08-10 15:25:48 -07:00
qca_debug.h
qca_spi.c ethernet: Delete unnecessary checks before the macro call “dev_kfree_skb” 2019-08-22 16:22:04 -07:00
qca_spi.h net: qca_spi: Add available buffer space verification 2018-11-08 19:41:01 -08:00
qca_uart.c ethernet: Delete unnecessary checks before the macro call “dev_kfree_skb” 2019-08-22 16:22:04 -07:00