Message ID | 748e1a55-dd2d-e5e0-1097-73664115668f@users.sourceforge.net |
---|---|
State | RFC, archived |
Delegated to: | David Miller |
Headers | show |
Series | net/sched/cls_fw: Fine-tuning for seven function implementations | expand |
diff --git a/net/sched/cls_fw.c b/net/sched/cls_fw.c index 5908f56f76da..567db4d2349f 100644 --- a/net/sched/cls_fw.c +++ b/net/sched/cls_fw.c @@ -281,14 +281,13 @@ static int fw_change(struct net *net, struct sk_buff *in_skb, fnew->tp = f->tp; err = tcf_exts_init(&fnew->exts, TCA_FW_ACT, TCA_FW_POLICE); - if (err < 0) { - kfree(fnew); - return err; - } + if (err < 0) + goto free_filter; err = fw_set_parms(net, tp, fnew, tb, tca, base, ovr); if (err < 0) { tcf_exts_destroy(&fnew->exts); +free_filter: kfree(fnew); return err; }