In case memory resources for *p* are allocated, release them
before return.

Addresses-Coverity-ID: 1471714 ("Resource leak")
Fixes: 0190c1d452a9 ("net: sched: atomically check-allocate action")
Signed-off-by: Gustavo A. R. Silva <gust...@embeddedor.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 a3eef00..3d6e265 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.4

Reply via email to