mirror of
https://github.com/torvalds/linux.git
synced 2026-09-19 17:18:02 +02:00
The aoe driver (or similar) generates a non-IPv6 packet
(e.g., ETH_P_AOE) and queues it for transmission via dev_queue_xmit()
on a 6LoWPAN interface (configured by the user or test case).
Since the packet is not IPv6, the 6LoWPAN header_ops->create function
(lowpan_header_create or header_create) returns early without initializing
the lowpan_addr_info structure in the skb headroom.
In the transmit function (lowpan_xmit), the driver calls lowpan_header
(or setup_header) which unconditionally copies and uses the lowpan_addr_info
from the headroom, which contains uninitialized data.
Fix this by dropping non IPv6 packets.
A similar fix is needed in net/bluetooth/6lowpan.c bt_xmit().
Fixes:
|
||
|---|---|---|
| .. | ||
| 6lowpan_i.h | ||
| core.c | ||
| Kconfig | ||
| Makefile | ||
| reassembly.c | ||
| rx.c | ||
| tx.c | ||