From: Christian Eggers Date: Thu, 19 Nov 2020 11:09:06 +0000 (+0100) Subject: net: dsa: avoid potential use-after-free error X-Git-Tag: accepted/tizen/unified/20230118.172025~8321^2~206 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=30abc9cd9c6bdd44d23fc49a9c2526a86fba4305;p=platform%2Fkernel%2Flinux-rpi.git net: dsa: avoid potential use-after-free error If dsa_switch_ops::port_txtstamp() returns false, clone will be freed immediately. Shouldn't store a pointer to freed memory. Signed-off-by: Christian Eggers Reviewed-by: Vladimir Oltean Tested-by: Vladimir Oltean Reviewed-by: Florian Fainelli Link: https://lore.kernel.org/r/20201119110906.25558-1-ceggers@arri.de Signed-off-by: Jakub Kicinski --- diff --git a/net/dsa/slave.c b/net/dsa/slave.c index ff2266d..7efc753 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -522,10 +522,10 @@ static void dsa_skb_tx_timestamp(struct dsa_slave_priv *p, if (!clone) return; - DSA_SKB_CB(skb)->clone = clone; - - if (ds->ops->port_txtstamp(ds, p->dp->index, clone, type)) + if (ds->ops->port_txtstamp(ds, p->dp->index, clone, type)) { + DSA_SKB_CB(skb)->clone = clone; return; + } kfree_skb(clone); }