Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 352771
b: refs/heads/master
c: 5474f57
h: refs/heads/master
i:
  352769: 8db07e3
  352767: 586b3a9
v: v3
  • Loading branch information
Pablo Neira Ayuso committed Feb 5, 2013
1 parent 994c970 commit 7b07314
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d52ed4379a8264bc9bc82c068448c424924f1fde
refs/heads/master: 5474f57f7d686ac918355419cb71496f835aaf5d
6 changes: 5 additions & 1 deletion trunk/include/uapi/linux/netfilter/xt_CT.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@

#include <linux/types.h>

#define XT_CT_NOTRACK 0x1
enum {
XT_CT_NOTRACK = 1 << 0,
XT_CT_NOTRACK_ALIAS = 1 << 1,
XT_CT_MASK = XT_CT_NOTRACK | XT_CT_NOTRACK_ALIAS,
};

struct xt_ct_target_info {
__u16 flags;
Expand Down
32 changes: 29 additions & 3 deletions trunk/net/netfilter/xt_CT.c
Original file line number Diff line number Diff line change
Expand Up @@ -185,9 +185,6 @@ static int xt_ct_tg_check(const struct xt_tgchk_param *par,
struct nf_conn *ct;
int ret = -EOPNOTSUPP;

if (info->flags & ~XT_CT_NOTRACK)
return -EINVAL;

if (info->flags & XT_CT_NOTRACK) {
ct = nf_ct_untracked_get();
atomic_inc(&ct->ct_general.use);
Expand Down Expand Up @@ -256,6 +253,9 @@ static int xt_ct_tg_check_v0(const struct xt_tgchk_param *par)
};
int ret;

if (info->flags & ~XT_CT_NOTRACK)
return -EINVAL;

memcpy(info_v1.helper, info->helper, sizeof(info->helper));

ret = xt_ct_tg_check(par, &info_v1);
Expand All @@ -269,6 +269,21 @@ static int xt_ct_tg_check_v0(const struct xt_tgchk_param *par)

static int xt_ct_tg_check_v1(const struct xt_tgchk_param *par)
{
struct xt_ct_target_info_v1 *info = par->targinfo;

if (info->flags & ~XT_CT_NOTRACK)
return -EINVAL;

return xt_ct_tg_check(par, par->targinfo);
}

static int xt_ct_tg_check_v2(const struct xt_tgchk_param *par)
{
struct xt_ct_target_info_v1 *info = par->targinfo;

if (info->flags & ~XT_CT_MASK)
return -EINVAL;

return xt_ct_tg_check(par, par->targinfo);
}

Expand Down Expand Up @@ -350,6 +365,17 @@ static struct xt_target xt_ct_tg_reg[] __read_mostly = {
.table = "raw",
.me = THIS_MODULE,
},
{
.name = "CT",
.family = NFPROTO_UNSPEC,
.revision = 2,
.targetsize = sizeof(struct xt_ct_target_info_v1),
.checkentry = xt_ct_tg_check_v2,
.destroy = xt_ct_tg_destroy_v1,
.target = xt_ct_target_v1,
.table = "raw",
.me = THIS_MODULE,
},
};

static unsigned int
Expand Down

0 comments on commit 7b07314

Please sign in to comment.