summaryrefslogtreecommitdiffstats
path: root/net/sched
diff options
context:
space:
mode:
authorDavide Caratti2018-11-14 12:17:25 +0100
committerGreg Kroah-Hartman2018-11-23 08:17:03 +0100
commitae06e2f9c1777592c13910dda9d25d9fd5c1381a (patch)
tree3a9c9e5cc763954ab656c558311fcd1c556ed029 /net/sched
parentnet: systemport: Protect stop from timeout (diff)
downloadkernel-qcow2-linux-ae06e2f9c1777592c13910dda9d25d9fd5c1381a.tar.gz
kernel-qcow2-linux-ae06e2f9c1777592c13910dda9d25d9fd5c1381a.tar.xz
kernel-qcow2-linux-ae06e2f9c1777592c13910dda9d25d9fd5c1381a.zip
net/sched: act_pedit: fix memory leak when IDR allocation fails
[ Upstream commit 19ab69107d3ecfb7cd3e38ad262a881be40c01a3 ] tcf_idr_check_alloc() can return a negative value, on allocation failures (-ENOMEM) or IDR exhaustion (-ENOSPC): don't leak keys_ex in these cases. Fixes: 0190c1d452a9 ("net: sched: atomically check-allocate action") Signed-off-by: Davide Caratti <dcaratti@redhat.com> Acked-by: Cong Wang <xiyou.wangcong@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/sched')
-rw-r--r--net/sched/act_pedit.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sched/act_pedit.c b/net/sched/act_pedit.c
index ad99a99f11f6..ca535a8585bc 100644
--- a/net/sched/act_pedit.c
+++ b/net/sched/act_pedit.c
@@ -201,7 +201,8 @@ static int tcf_pedit_init(struct net *net, struct nlattr *nla,
goto out_release;
}
} else {
- return err;
+ ret = err;
+ goto out_free;
}
p = to_pedit(*a);