linux_old1/net/dsa
Vivien Didelot e71cb9e009 net: dsa: ksz: fix skb freeing
The DSA layer frees the original skb when an xmit function returns NULL,
meaning an error occurred. But if the tagging code copied the original
skb, it is responsible of freeing the copy if an error occurs.

The ksz tagging code currently has two issues: if skb_put_padto fails,
the skb copy is not freed, and the original skb will be freed twice.

To fix that, move skb_put_padto inside both branches of the skb_tailroom
condition, before freeing the original skb, and free the copy on error.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Reviewed-by: Woojung Huh <woojung.huh@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-08-11 13:57:08 -07:00
..
Kconfig dsa: add support for Microchip KSZ tail tagging 2017-05-31 20:56:31 -04:00
Makefile dsa: add support for Microchip KSZ tail tagging 2017-05-31 20:56:31 -04:00
dsa.c net: dsa: Relocate master ethtool operations 2017-06-13 16:35:02 -04:00
dsa2.c net: dsa: Initialize ds->cpu_port_mask earlier 2017-07-24 17:36:27 -07:00
dsa_priv.h net: dsa: Introduce dsa_get_cpu_port() 2017-06-13 16:35:03 -04:00
legacy.c net: dsa: Fix legacy probing 2017-06-17 22:59:45 -04:00
port.c net: dsa: support cross-chip ageing time 2017-05-24 16:27:47 -04:00
slave.c net: dsa: Introduce dsa_get_cpu_port() 2017-06-13 16:35:03 -04:00
switch.c net: dsa: add cross-chip multicast support 2017-06-16 15:21:14 -04:00
tag_brcm.c net: dsa: Introduce dsa_get_cpu_port() 2017-06-13 16:35:03 -04:00
tag_dsa.c net: dsa: factor skb freeing on xmit 2017-06-01 17:34:56 -04:00
tag_edsa.c net: dsa: factor skb freeing on xmit 2017-06-01 17:34:56 -04:00
tag_ksz.c net: dsa: ksz: fix skb freeing 2017-08-11 13:57:08 -07:00
tag_lan9303.c net: dsa: factor skb freeing on xmit 2017-06-01 17:34:56 -04:00
tag_mtk.c net: dsa: factor skb freeing on xmit 2017-06-01 17:34:56 -04:00
tag_qca.c net: dsa: Introduce dsa_get_cpu_port() 2017-06-13 16:35:03 -04:00
tag_trailer.c net: manual clean code which call skb_put_[data:zero] 2017-06-20 13:30:15 -04:00