mirror of
https://github.com/torvalds/linux.git
synced 2026-10-17 06:20:02 +02:00
rmnet_map_deaggregate() allocates each sub-frame with alloc_skb() and leaves skb->dev NULL. __rmnet_map_ingress_handler() assigns skb->dev = ep->egress_dev only on the data path, but a MAP command frame is dispatched to rmnet_map_command() before that, so rmnet_map_send_ack() runs netif_tx_lock(skb->dev) on a NULL device. An unprivileged user reaches this by unsharing a user+net namespace, creating an rmnet link over a tap device with INGRESS_DEAGGREGATION and INGRESS_MAP_COMMANDS, and writing an aggregated frame carrying a flow-control command to the tap fd. Restore the assignment dropped by |
||
|---|---|---|
| .. | ||
| emac | ||
| ppe | ||
| rmnet | ||
| Kconfig | ||
| Makefile | ||
| qca_7k_common.c | ||
| qca_7k_common.h | ||
| qca_7k.c | ||
| qca_7k.h | ||
| qca_debug.c | ||
| qca_debug.h | ||
| qca_spi.c | ||
| qca_spi.h | ||
| qca_uart.c | ||