Skip to content

Unable to compile on Debian 10 #1

@dtouzeau

Description

@dtouzeau

Issue when compiling the kernel module:

CC [M]  /root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.o
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c: In function ‘send_rst’:
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:55:28: error: passing argument 1 of ‘ip_route_me_harder’ from incompatible pointer type [-Werror=incompatible-pointer-types]
     if (ip_route_me_harder(nskb, RTN_UNSPEC)) {
                            ^~~~
In file included from /usr/src/linux-headers-4.19.0-6-common/include/linux/netfilter/x_tables.h:245,
                 from /root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:12:
/usr/src/linux-headers-4.19.0-6-common/include/linux/netfilter_ipv4.h:19:36: note: expected ‘struct net *’ but argument is of type ‘struct sk_buff *’
 int ip_route_me_harder(struct net *net, struct sk_buff *skb, unsigned addr_type);
                        ~~~~~~~~~~~~^~~
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:55:9: error: too few arguments to function ‘ip_route_me_harder’
     if (ip_route_me_harder(nskb, RTN_UNSPEC)) {
         ^~~~~~~~~~~~~~~~~~
In file included from /usr/src/linux-headers-4.19.0-6-common/include/linux/netfilter/x_tables.h:245,
                 from /root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:12:
/usr/src/linux-headers-4.19.0-6-common/include/linux/netfilter_ipv4.h:19:5: note: declared here
 int ip_route_me_harder(struct net *net, struct sk_buff *skb, unsigned addr_type);
     ^~~~~~~~~~~~~~~~~~
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:66:9: error: ‘struct sk_buff’ has no member named ‘nfctinfo’
     nskb->nfctinfo = ctinfo;
         ^~
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:68:18: error: passing argument 1 of ‘ip_local_out’ from incompatible pointer type [-Werror=incompatible-pointer-types]
     ip_local_out(nskb);
                  ^~~~
In file included from /usr/src/linux-headers-4.19.0-6-common/include/net/icmp.h:25,
                 from /root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:7:
/usr/src/linux-headers-4.19.0-6-common/include/net/ip.h:165:30: note: expected ‘struct net *’ but argument is of type ‘struct sk_buff *’
 int ip_local_out(struct net *net, struct sock *sk, struct sk_buff *skb);
                  ~~~~~~~~~~~~^~~
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:68:5: error: too few arguments to function ‘ip_local_out’
     ip_local_out(nskb);
     ^~~~~~~~~~~~
In file included from /usr/src/linux-headers-4.19.0-6-common/include/net/icmp.h:25,
                 from /root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:7:
/usr/src/linux-headers-4.19.0-6-common/include/net/ip.h:165:5: note: declared here
 int ip_local_out(struct net *net, struct sock *sk, struct sk_buff *skb);
     ^~~~~~~~~~~~
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c: In function ‘send_redirect_to_client’:
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:130:28: error: passing argument 1 of ‘ip_route_me_harder’ from incompatible pointer type [-Werror=incompatible-pointer-types]
     if (ip_route_me_harder(nskb, RTN_UNSPEC))
                            ^~~~
In file included from /usr/src/linux-headers-4.19.0-6-common/include/linux/netfilter/x_tables.h:245,
                 from /root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:12:
/usr/src/linux-headers-4.19.0-6-common/include/linux/netfilter_ipv4.h:19:36: note: expected ‘struct net *’ but argument is of type ‘struct sk_buff *’
 int ip_route_me_harder(struct net *net, struct sk_buff *skb, unsigned addr_type);
                        ~~~~~~~~~~~~^~~
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:130:9: error: too few arguments to function ‘ip_route_me_harder’
     if (ip_route_me_harder(nskb, RTN_UNSPEC))
         ^~~~~~~~~~~~~~~~~~
In file included from /usr/src/linux-headers-4.19.0-6-common/include/linux/netfilter/x_tables.h:245,
                 from /root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:12:
/usr/src/linux-headers-4.19.0-6-common/include/linux/netfilter_ipv4.h:19:5: note: declared here
 int ip_route_me_harder(struct net *net, struct sk_buff *skb, unsigned addr_type);
     ^~~~~~~~~~~~~~~~~~
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:143:9: error: ‘struct sk_buff’ has no member named ‘nfctinfo’
     nskb->nfctinfo = ctinfo;
         ^~
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:145:18: error: passing argument 1 of ‘ip_local_out’ from incompatible pointer type [-Werror=incompatible-pointer-types]
     ip_local_out(nskb);
                  ^~~~
In file included from /usr/src/linux-headers-4.19.0-6-common/include/net/icmp.h:25,
                 from /root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:7:
/usr/src/linux-headers-4.19.0-6-common/include/net/ip.h:165:30: note: expected ‘struct net *’ but argument is of type ‘struct sk_buff *’
 int ip_local_out(struct net *net, struct sock *sk, struct sk_buff *skb);
                  ~~~~~~~~~~~~^~~
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:145:5: error: too few arguments to function ‘ip_local_out’
     ip_local_out(nskb);
     ^~~~~~~~~~~~
In file included from /usr/src/linux-headers-4.19.0-6-common/include/net/icmp.h:25,
                 from /root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:7:
/usr/src/linux-headers-4.19.0-6-common/include/net/ip.h:165:5: note: declared here
 int ip_local_out(struct net *net, struct sock *sk, struct sk_buff *skb);
     ^~~~~~~~~~~~
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:82:21: warning: unused variable ‘rst_skb’ [-Wunused-variable]
     struct sk_buff *rst_skb;
                     ^~~~~~~
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c: At top level:
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:188:51: warning: ‘struct xt_target_param’ declared inside parameter list will not be visible outside of this definition or declaration
 httpredirect_tg(struct sk_buff *skb, const struct xt_target_param *par)
                                                   ^~~~~~~~~~~~~~~
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c: In function ‘httpredirect_tg’:
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:190:58: error: dereferencing pointer to incomplete type ‘const struct xt_target_param’
     const struct xt_httpredirect_info *httpredirect = par->targinfo;
                                                          ^~
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c: At top level:
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:211:22: error: initialization of ‘unsigned int (*)(struct sk_buff *, const struct xt_action_param *)’ from incompatible pointer type ‘unsigned int (*)(struct sk_buff *, const struct xt_target_param *)’ [-Werror=incompatible-pointer-types]
     .target        = httpredirect_tg,
                      ^~~~~~~~~~~~~~~
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:211:22: note: (near initialization for ‘httpredirect_tg_reg.target’)
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:215:22: error: initialization of ‘int (*)(const struct xt_tgchk_param *)’ from incompatible pointer type ‘bool (*)(const struct xt_tgchk_param *)’ {aka ‘_Bool (*)(const struct xt_tgchk_param *)’} [-Werror=incompatible-pointer-types]
     .checkentry    = httpredirect_tg_check,
                      ^~~~~~~~~~~~~~~~~~~~~
/root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.c:215:22: note: (near initialization for ‘httpredirect_tg_reg.checkentry’)
cc1: some warnings being treated as errors
make[4]: *** [/usr/src/linux-headers-4.19.0-6-common/scripts/Makefile.build:315: /root/ipt_httpredirect/kernel/xt_HTTPREDIRECT.o] Error 1
make[3]: *** [/usr/src/linux-headers-4.19.0-6-common/Makefile:1534: _module_/root/ipt_httpredirect/kernel] Error 2
make[2]: *** [Makefile:146: sub-make] Error 2
make[1]: *** [Makefile:8: all] Error 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions