Linux/linux cfef46ddrivers/net/ethernet/renesas ravb_main.c

ravb: Fix use-after-free ravb_tstamp_skb

When a Tx timestamp is requested, a pointer to the skb is stored in the
ravb_tstamp_skb struct. This was done without an skb_get. There exists
the possibility that the skb could be freed by ravb_tx_free (when
ravb_tx_free is called from ravb_start_xmit) before the timestamp was
processed, leading to a use-after-free bug.

Use skb_get when filling a ravb_tstamp_skb struct, and add appropriate
frees/consumes when a ravb_tstamp_skb struct is freed.

Fixes: c156633f1353 ("Renesas Ethernet AVB driver proper")
Signed-off-by: Tho Vu <tho.vu.wh at rvc.renesas.com>
Signed-off-by: Kazuya Mizuguchi <kazuya.mizuguchi.ks at renesas.com>
Signed-off-by: Simon Horman <horms+renesas at verge.net.au>
Signed-off-by: David S. Miller <davem at davemloft.net>
DeltaFile
+6-2drivers/net/ethernet/renesas/ravb_main.c
+6-21 files

UnifiedSplitRaw