lkml.org 
[lkml]   [2015]   [Sep]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.16.y-ckt 039/130] act_pedit: check binding before calling tcf_hash_release()
    Date
    3.16.7-ckt17 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: WANG Cong <xiyou.wangcong@gmail.com>

    commit 5175f7106cc55a1bcf97bf7d5ba0900017ebcef8 upstream.

    When we share an action within a filter, the bind refcnt
    should increase, therefore we should not call tcf_hash_release().

    Fixes: 1a29321ed045 ("net_sched: act: Dont increment refcnt on replace")
    Cc: Jamal Hadi Salim <jhs@mojatatu.com>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: Cong Wang <cwang@twopensource.com>
    Acked-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
    ---
    net/sched/act_pedit.c | 5 ++---
    1 file changed, 2 insertions(+), 3 deletions(-)

    diff --git a/net/sched/act_pedit.c b/net/sched/act_pedit.c
    index 5f9bcb2e080b..27662e19c3bd 100644
    --- a/net/sched/act_pedit.c
    +++ b/net/sched/act_pedit.c
    @@ -68,13 +68,12 @@ static int tcf_pedit_init(struct net *net, struct nlattr *nla,
    }
    ret = ACT_P_CREATED;
    } else {
    - p = to_pedit(a);
    - tcf_hash_release(a, bind);
    if (bind)
    return 0;
    + tcf_hash_release(a, bind);
    if (!ovr)
    return -EEXIST;
    -
    + p = to_pedit(a);
    if (p->tcfp_nkeys && p->tcfp_nkeys != parm->nkeys) {
    keys = kmalloc(ksize, GFP_KERNEL);
    if (keys == NULL)

    \
     
     \ /
      Last update: 2015-09-04 16:01    [W:5.631 / U:0.400 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site