summaryrefslogtreecommitdiffstats
path: root/lib/route
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2014-04-30 12:29:46 (GMT)
committerThomas Haller <thaller@redhat.com>2014-05-01 14:59:06 (GMT)
commit35f44734bcada32bde56981d070e522b68c1b4dd (patch)
tree4f9b9ed25ee43d2b96637d106f90863528b7ec7e /lib/route
parentb8d90d9bb19b5d9e4e5f71c4f6bb0eaadd78d7a0 (diff)
downloadlibnl-35f44734bcada32bde56981d070e522b68c1b4dd.zip
libnl-35f44734bcada32bde56981d070e522b68c1b4dd.tar.gz
libnl-35f44734bcada32bde56981d070e522b68c1b4dd.tar.bz2
act: fix memory leak in rtnl_act_parse()
Acked-by: Cong Wang <xiyou.wangcong@gmail.com> Signed-off-by: Thomas Haller <thaller@redhat.com>
Diffstat (limited to 'lib/route')
-rw-r--r--lib/route/act.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/route/act.c b/lib/route/act.c
index f5733bb..0e5d7d1 100644
--- a/lib/route/act.c
+++ b/lib/route/act.c
@@ -384,6 +384,7 @@ void rtnl_act_put_all(struct rtnl_act **head)
int rtnl_act_parse(struct rtnl_act **head, struct nlattr *tb)
{
+ struct rtnl_act *act;
struct rtnl_tc_ops *ops;
struct nlattr *tb2[TCA_ACT_MAX + 1];
struct nlattr *nla[TCA_ACT_MAX_PRIO + 1];
@@ -396,7 +397,6 @@ int rtnl_act_parse(struct rtnl_act **head, struct nlattr *tb)
return err;
for (i = 0; i < TCA_ACT_MAX_PRIO && nla[i]; i++) {
- struct rtnl_act *act;
struct rtnl_tc *tc;
act = rtnl_act_alloc();
@@ -447,6 +447,7 @@ int rtnl_act_parse(struct rtnl_act **head, struct nlattr *tb)
return 0;
err_free:
+ rtnl_act_put (act);
rtnl_act_put_all(head);
return err;