diff --git a/net/sched/pedit.c b/net/sched/pedit.c index b5167afec2dc748b1d2583fb7a17d275a31c5a76..1742a68e0122a134a9e4430c5e96a762a3f3061a 100644 --- a/net/sched/pedit.c +++ b/net/sched/pedit.c @@ -245,10 +245,12 @@ tcf_pedit_dump(struct sk_buff *skb, struct tc_action *a,int bind, int ref) t.lastuse = jiffies_to_clock_t(jiffies - p->tm.lastuse); t.expires = jiffies_to_clock_t(p->tm.expires); RTA_PUT(skb, TCA_PEDIT_TM, sizeof(t), &t); + kfree(opt); return skb->len; rtattr_failure: skb_trim(skb, b - skb->data); + kfree(opt); return -1; }