Free params if tcf_idr_check_alloc() returned error.

Fixes: 0190c1d452a9 ("net: sched: atomically check-allocate action")
Reported-by: Dan Carpenter <dan.carpen...@oracle.com>
Signed-off-by: Vlad Buslov <vla...@mellanox.com>
---
 net/sched/act_ife.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/net/sched/act_ife.c b/net/sched/act_ife.c
index a3eef00cd711..3d6e265758c0 100644
--- a/net/sched/act_ife.c
+++ b/net/sched/act_ife.c
@@ -485,8 +485,10 @@ static int tcf_ife_init(struct net *net, struct nlattr 
*nla,
                return -ENOMEM;
 
        err = tcf_idr_check_alloc(tn, &parm->index, a, bind);
-       if (err < 0)
+       if (err < 0) {
+               kfree(p);
                return err;
+       }
        exists = err;
        if (exists && bind) {
                kfree(p);
-- 
2.7.5

Reply via email to