]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
netfilter: helpers: remove data_len usage for inkernel helpers
authorFlorian Westphal <fw@strlen.de>
Sat, 15 Apr 2017 23:29:17 +0000 (01:29 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 19 Apr 2017 15:55:17 +0000 (17:55 +0200)
No need to track this for inkernel helpers anymore as
NF_CT_HELPER_BUILD_BUG_ON checks do this now.

All inkernel helpers know what kind of structure they
stored in helper->data.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/net/netfilter/nf_conntrack_helper.h
net/netfilter/nf_conntrack_ftp.c
net/netfilter/nf_conntrack_h323_main.c
net/netfilter/nf_conntrack_helper.c
net/netfilter/nf_conntrack_irc.c
net/netfilter/nf_conntrack_pptp.c
net/netfilter/nf_conntrack_sane.c
net/netfilter/nf_conntrack_sip.c
net/netfilter/nf_conntrack_tftp.c

index 29539ed1008f7117e3b33b995dc6c70852ca8831..e04fa7691e5d6873cd04e94816227d4a41275fa2 100644 (file)
@@ -29,9 +29,6 @@ struct nf_conntrack_helper {
        struct module *me;              /* pointer to self */
        const struct nf_conntrack_expect_policy *expect_policy;
 
-       /* length of internal data, ie. sizeof(struct nf_ct_*_master) */
-       size_t data_len;
-
        /* Tuple of things we will help (compared against server response) */
        struct nf_conntrack_tuple tuple;
 
@@ -49,7 +46,11 @@ struct nf_conntrack_helper {
        unsigned int expect_class_max;
 
        unsigned int flags;
-       unsigned int queue_num;         /* For user-space helpers. */
+
+       /* For user-space helpers: */
+       unsigned int queue_num;
+       /* length of userspace private data stored in nf_conn_help->data */
+       u16 data_len;
 };
 
 /* Must be kept in sync with the classes defined by helpers */
@@ -82,7 +83,7 @@ void nf_ct_helper_init(struct nf_conntrack_helper *helper,
                       u16 l3num, u16 protonum, const char *name,
                       u16 default_port, u16 spec_port, u32 id,
                       const struct nf_conntrack_expect_policy *exp_pol,
-                      u32 expect_class_max, u32 data_len,
+                      u32 expect_class_max,
                       int (*help)(struct sk_buff *skb, unsigned int protoff,
                                   struct nf_conn *ct,
                                   enum ip_conntrack_info ctinfo),
index 58e1256cd05d88849a2b55421fb0abea5cc3df88..f0e9a7511e1ac4915ed9bc43492d214417b3c1bd 100644 (file)
@@ -591,12 +591,10 @@ static int __init nf_conntrack_ftp_init(void)
        for (i = 0; i < ports_c; i++) {
                nf_ct_helper_init(&ftp[2 * i], AF_INET, IPPROTO_TCP, "ftp",
                                  FTP_PORT, ports[i], ports[i], &ftp_exp_policy,
-                                 0, sizeof(struct nf_ct_ftp_master), help,
-                                 nf_ct_ftp_from_nlattr, THIS_MODULE);
+                                 0, help, nf_ct_ftp_from_nlattr, THIS_MODULE);
                nf_ct_helper_init(&ftp[2 * i + 1], AF_INET6, IPPROTO_TCP, "ftp",
                                  FTP_PORT, ports[i], ports[i], &ftp_exp_policy,
-                                 0, sizeof(struct nf_ct_ftp_master), help,
-                                 nf_ct_ftp_from_nlattr, THIS_MODULE);
+                                 0, help, nf_ct_ftp_from_nlattr, THIS_MODULE);
        }
 
        ret = nf_conntrack_helpers_register(ftp, ports_c * 2);
index e98204349efea9d0dfeabed228e31721590fd12d..3bcdc718484e4c5352ab2de17c5a8aaf227af2f3 100644 (file)
@@ -637,7 +637,6 @@ static const struct nf_conntrack_expect_policy h245_exp_policy = {
 static struct nf_conntrack_helper nf_conntrack_helper_h245 __read_mostly = {
        .name                   = "H.245",
        .me                     = THIS_MODULE,
-       .data_len               = sizeof(struct nf_ct_h323_master),
        .tuple.src.l3num        = AF_UNSPEC,
        .tuple.dst.protonum     = IPPROTO_UDP,
        .help                   = h245_help,
@@ -1215,7 +1214,6 @@ static struct nf_conntrack_helper nf_conntrack_helper_q931[] __read_mostly = {
        {
                .name                   = "Q.931",
                .me                     = THIS_MODULE,
-               .data_len               = sizeof(struct nf_ct_h323_master),
                .tuple.src.l3num        = AF_INET,
                .tuple.src.u.tcp.port   = cpu_to_be16(Q931_PORT),
                .tuple.dst.protonum     = IPPROTO_TCP,
@@ -1800,7 +1798,6 @@ static struct nf_conntrack_helper nf_conntrack_helper_ras[] __read_mostly = {
        {
                .name                   = "RAS",
                .me                     = THIS_MODULE,
-               .data_len               = sizeof(struct nf_ct_h323_master),
                .tuple.src.l3num        = AF_INET,
                .tuple.src.u.udp.port   = cpu_to_be16(RAS_PORT),
                .tuple.dst.protonum     = IPPROTO_UDP,
@@ -1810,7 +1807,6 @@ static struct nf_conntrack_helper nf_conntrack_helper_ras[] __read_mostly = {
        {
                .name                   = "RAS",
                .me                     = THIS_MODULE,
-               .data_len               = sizeof(struct nf_ct_h323_master),
                .tuple.src.l3num        = AF_INET6,
                .tuple.src.u.udp.port   = cpu_to_be16(RAS_PORT),
                .tuple.dst.protonum     = IPPROTO_UDP,
index 33ebb78649f8f0e6c10c831a5a505c191f518966..8239b4406f56f031fa29b3c07f8030f44cf3df41 100644 (file)
@@ -178,8 +178,7 @@ nf_ct_helper_ext_add(struct nf_conn *ct,
 {
        struct nf_conn_help *help;
 
-       help = nf_ct_ext_add_length(ct, NF_CT_EXT_HELPER,
-                                   helper->data_len, gfp);
+       help = nf_ct_ext_add(ct, NF_CT_EXT_HELPER, gfp);
        if (help)
                INIT_HLIST_HEAD(&help->expectations);
        else
@@ -484,7 +483,7 @@ void nf_ct_helper_init(struct nf_conntrack_helper *helper,
                       u16 l3num, u16 protonum, const char *name,
                       u16 default_port, u16 spec_port, u32 id,
                       const struct nf_conntrack_expect_policy *exp_pol,
-                      u32 expect_class_max, u32 data_len,
+                      u32 expect_class_max,
                       int (*help)(struct sk_buff *skb, unsigned int protoff,
                                   struct nf_conn *ct,
                                   enum ip_conntrack_info ctinfo),
@@ -497,7 +496,6 @@ void nf_ct_helper_init(struct nf_conntrack_helper *helper,
        helper->tuple.src.u.all = htons(spec_port);
        helper->expect_policy = exp_pol;
        helper->expect_class_max = expect_class_max;
-       helper->data_len = data_len;
        helper->help = help;
        helper->from_nlattr = from_nlattr;
        helper->me = module;
index 1a5af4d4af2dc57f561dbaf0d08722f4579e5eb2..5523acce9d6993dc71e467bbdf7b718ab2b25bf7 100644 (file)
@@ -263,7 +263,7 @@ static int __init nf_conntrack_irc_init(void)
        for (i = 0; i < ports_c; i++) {
                nf_ct_helper_init(&irc[i], AF_INET, IPPROTO_TCP, "irc",
                                  IRC_PORT, ports[i], i, &irc_exp_policy,
-                                 0, 0, help, NULL, THIS_MODULE);
+                                 0, help, NULL, THIS_MODULE);
        }
 
        ret = nf_conntrack_helpers_register(&irc[0], ports_c);
index 34fac4c52c4cdfdf456707780b19fce74699c8ef..126031909fc7808a4c384476ddb42b8c790a3b59 100644 (file)
@@ -596,7 +596,6 @@ static const struct nf_conntrack_expect_policy pptp_exp_policy = {
 static struct nf_conntrack_helper pptp __read_mostly = {
        .name                   = "pptp",
        .me                     = THIS_MODULE,
-       .data_len               = sizeof(struct nf_ct_pptp_master),
        .tuple.src.l3num        = AF_INET,
        .tuple.src.u.tcp.port   = cpu_to_be16(PPTP_CONTROL_PORT),
        .tuple.dst.protonum     = IPPROTO_TCP,
index 1121db08d0489beafad5ea1955ec1883392d21d2..ae457f39d5ceb804aa60120c7d897dd441e49d2a 100644 (file)
@@ -198,13 +198,11 @@ static int __init nf_conntrack_sane_init(void)
        for (i = 0; i < ports_c; i++) {
                nf_ct_helper_init(&sane[2 * i], AF_INET, IPPROTO_TCP, "sane",
                                  SANE_PORT, ports[i], ports[i],
-                                 &sane_exp_policy, 0,
-                                 sizeof(struct nf_ct_sane_master), help, NULL,
+                                 &sane_exp_policy, 0, help, NULL,
                                  THIS_MODULE);
                nf_ct_helper_init(&sane[2 * i + 1], AF_INET6, IPPROTO_TCP, "sane",
                                  SANE_PORT, ports[i], ports[i],
-                                 &sane_exp_policy, 0,
-                                 sizeof(struct nf_ct_sane_master), help, NULL,
+                                 &sane_exp_policy, 0, help, NULL,
                                  THIS_MODULE);
        }
 
index 79bbcc4d52ee6b4d4715d07d1dec8925cd7f04d6..d38af4274335b9bed6de1edb4b0c4ae6fdf96656 100644 (file)
@@ -1630,23 +1630,19 @@ static int __init nf_conntrack_sip_init(void)
        for (i = 0; i < ports_c; i++) {
                nf_ct_helper_init(&sip[4 * i], AF_INET, IPPROTO_UDP, "sip",
                                  SIP_PORT, ports[i], i, sip_exp_policy,
-                                 SIP_EXPECT_MAX,
-                                 sizeof(struct nf_ct_sip_master), sip_help_udp,
+                                 SIP_EXPECT_MAX, sip_help_udp,
                                  NULL, THIS_MODULE);
                nf_ct_helper_init(&sip[4 * i + 1], AF_INET, IPPROTO_TCP, "sip",
                                  SIP_PORT, ports[i], i, sip_exp_policy,
-                                 SIP_EXPECT_MAX,
-                                 sizeof(struct nf_ct_sip_master), sip_help_tcp,
+                                 SIP_EXPECT_MAX, sip_help_tcp,
                                  NULL, THIS_MODULE);
                nf_ct_helper_init(&sip[4 * i + 2], AF_INET6, IPPROTO_UDP, "sip",
                                  SIP_PORT, ports[i], i, sip_exp_policy,
-                                 SIP_EXPECT_MAX,
-                                 sizeof(struct nf_ct_sip_master), sip_help_udp,
+                                 SIP_EXPECT_MAX, sip_help_udp,
                                  NULL, THIS_MODULE);
                nf_ct_helper_init(&sip[4 * i + 3], AF_INET6, IPPROTO_TCP, "sip",
                                  SIP_PORT, ports[i], i, sip_exp_policy,
-                                 SIP_EXPECT_MAX,
-                                 sizeof(struct nf_ct_sip_master), sip_help_tcp,
+                                 SIP_EXPECT_MAX, sip_help_tcp,
                                  NULL, THIS_MODULE);
        }
 
index 27e2f6f904dcfacd609a1e88962ff5596395e18a..0ec6779fd5d944406eb67ff6e3256698ec40d20c 100644 (file)
@@ -121,10 +121,10 @@ static int __init nf_conntrack_tftp_init(void)
        for (i = 0; i < ports_c; i++) {
                nf_ct_helper_init(&tftp[2 * i], AF_INET, IPPROTO_UDP, "tftp",
                                  TFTP_PORT, ports[i], i, &tftp_exp_policy,
-                                 0, 0, tftp_help, NULL, THIS_MODULE);
+                                 0, tftp_help, NULL, THIS_MODULE);
                nf_ct_helper_init(&tftp[2 * i + 1], AF_INET6, IPPROTO_UDP, "tftp",
                                  TFTP_PORT, ports[i], i, &tftp_exp_policy,
-                                 0, 0, tftp_help, NULL, THIS_MODULE);
+                                 0, tftp_help, NULL, THIS_MODULE);
        }
 
        ret = nf_conntrack_helpers_register(tftp, ports_c * 2);