summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorPieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com>2019-05-08 15:56:07 -0700
committerDavid S. Miller <davem@davemloft.net>2019-05-08 16:34:58 -0700
commit5f05836831f6142081e216f27e1ae8f4b26d3585 (patch)
tree96b9705380233c6d606017466de3353157c87328 /net
parent1e966763e256393965c78aa09b89027fac6b8bf1 (diff)
downloadlinux-rpi-5f05836831f6142081e216f27e1ae8f4b26d3585.tar.gz
linux-rpi-5f05836831f6142081e216f27e1ae8f4b26d3585.tar.bz2
linux-rpi-5f05836831f6142081e216f27e1ae8f4b26d3585.zip
net/sched: avoid double free on matchall reoffload
Avoid freeing cls_mall.rule twice when failing to setup flow_action offload used in the hardware intermediate representation. This is achieved by returning 0 when the setup fails but the skip software flag has not been set. Fixes: f00cbf196814 ("net/sched: use the hardware intermediate representation for matchall") Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com> Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/sched/cls_matchall.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/sched/cls_matchall.c b/net/sched/cls_matchall.c
index 1e98a517fb0b..db42d97a2006 100644
--- a/net/sched/cls_matchall.c
+++ b/net/sched/cls_matchall.c
@@ -308,6 +308,7 @@ static int mall_reoffload(struct tcf_proto *tp, bool add, tc_setup_cb_t *cb,
NL_SET_ERR_MSG_MOD(extack, "Failed to setup flow action");
return err;
}
+ return 0;
}
err = cb(TC_SETUP_CLSMATCHALL, &cls_mall, cb_priv);