netfilter: nf_ct_helper: implement variable length helper private data
[firefly-linux-kernel-4.4.55.git] / net / netfilter / nf_conntrack_ftp.c
index 44e47c9e14fb5fb0eeb96213a9f1fe903012faab..4bb771d1f57af53545b9eb36687ba000fd535fde 100644 (file)
@@ -358,7 +358,7 @@ static int help(struct sk_buff *skb,
        u32 seq;
        int dir = CTINFO2DIR(ctinfo);
        unsigned int uninitialized_var(matchlen), uninitialized_var(matchoff);
-       struct nf_ct_ftp_master *ct_ftp_info = &nfct_help(ct)->help.ct_ftp_info;
+       struct nf_ct_ftp_master *ct_ftp_info = nfct_help_data(ct);
        struct nf_conntrack_expect *exp;
        union nf_inet_addr *daddr;
        struct nf_conntrack_man cmd = {};
@@ -554,6 +554,7 @@ static int __init nf_conntrack_ftp_init(void)
                ftp[i][0].tuple.src.l3num = PF_INET;
                ftp[i][1].tuple.src.l3num = PF_INET6;
                for (j = 0; j < 2; j++) {
+                       ftp[i][j].data_len = sizeof(struct nf_ct_ftp_master);
                        ftp[i][j].tuple.src.u.tcp.port = htons(ports[i]);
                        ftp[i][j].tuple.dst.protonum = IPPROTO_TCP;
                        ftp[i][j].expect_policy = &ftp_exp_policy;