• Xin Long's avatar
    net: sched: set xt_tgchk_param par.net properly in ipt_init_target · ec0acb09
    Xin Long authored
    Now xt_tgchk_param par in ipt_init_target is a local varibale,
    par.net is not initialized there. Later when xt_check_target
    calls target's checkentry in which it may access par.net, it
    would cause kernel panic.
    
    Jaroslav found this panic when running:
    
      # ip link add TestIface type dummy
      # tc qd add dev TestIface ingress handle ffff:
      # tc filter add dev TestIface parent ffff: u32 match u32 0 0 \
        action xt -j CONNMARK --set-mark 4
    
    This patch is to pass net param into ipt_init_target and set
    par.net with it properly in there.
    
    v1->v2:
      As Wang Cong pointed, I missed ipt_net_id != xt_net_id, so fix
      it by also passing net_id to __tcf_ipt_init.
    v2->v3:
      Missed the fixes tag, so add it.
    
    Fixes: ecb2421b ("netfilter: add and use nf_ct_netns_get/put")
    Reported-by: default avatarJaroslav Aster <jaster@redhat.com>
    Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
    Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ec0acb09
act_ipt.c 10.2 KB