net: stmmac: fix NULL pointer dereference in stmmac_get_tx_hwtstamp
authordamuzi000 <damuzi000@gmail.com>
Fri, 17 Jan 2014 15:47:59 +0000 (23:47 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 20 Jan 2014 04:02:45 +0000 (20:02 -0800)
commit75e4364f67d9cb996f9a6ff982ad9b3700648591
tree429b1772db926d6fe70a1cad56353d890c1e87b9
parentaf0bd4e9ba809391f275d0c094ac0bfbfbb3f430
net: stmmac: fix NULL pointer dereference in stmmac_get_tx_hwtstamp

When timestamping is enabled, stmmac_tx_clean will call
stmmac_get_tx_hwtstamp to get tx TS.
But the skb can be NULL because the last of its tx_skbuff is NULL
if this packet frame is filled in more than one descriptors.

To fix the issue, change the code:
- Store TX skb to the tx_skbuff[] of frame's last segment.
- Check skb is not NULL in stmmac_get_tx_hwtstamp.

Signed-off-by: Bruce Liu <damuzi000@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/chain_mode.c
drivers/net/ethernet/stmicro/stmmac/ring_mode.c
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c