Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a45049c5 authored by Pablo Neira Ayuso's avatar Pablo Neira Ayuso Committed by David S. Miller
Browse files

[NETFILTER]: x_tables: set the protocol family in x_tables targets/matches



Set the family field in xt_[matches|targets] registered.

Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4e3882f7
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -220,10 +220,10 @@ struct xt_table_info
	char *entries[NR_CPUS];
};

extern int xt_register_target(int af, struct xt_target *target);
extern void xt_unregister_target(int af, struct xt_target *target);
extern int xt_register_match(int af, struct xt_match *target);
extern void xt_unregister_match(int af, struct xt_match *target);
extern int xt_register_target(struct xt_target *target);
extern void xt_unregister_target(struct xt_target *target);
extern int xt_register_match(struct xt_match *target);
extern void xt_unregister_match(struct xt_match *target);

extern int xt_check_match(const struct xt_match *match, unsigned short family,
			  unsigned int size, const char *table, unsigned int hook,
+4 −2
Original line number Diff line number Diff line
@@ -263,8 +263,10 @@ static __inline__ struct arpt_entry_target *arpt_get_target(struct arpt_entry *e
 */
#ifdef __KERNEL__

#define arpt_register_target(tgt) xt_register_target(NF_ARP, tgt)
#define arpt_unregister_target(tgt) xt_unregister_target(NF_ARP, tgt)
#define arpt_register_target(tgt) 	\
({	(tgt)->family = NF_ARP;		\
 	xt_register_target(tgt); })
#define arpt_unregister_target(tgt) xt_unregister_target(tgt)

extern int arpt_register_table(struct arpt_table *table,
			       const struct arpt_replace *repl);
+9 −5
Original line number Diff line number Diff line
@@ -321,11 +321,15 @@ ipt_get_target(struct ipt_entry *e)
#include <linux/init.h>
extern void ipt_init(void) __init;

#define ipt_register_target(tgt) xt_register_target(AF_INET, tgt)
#define ipt_unregister_target(tgt) xt_unregister_target(AF_INET, tgt)

#define ipt_register_match(mtch) xt_register_match(AF_INET, mtch)
#define ipt_unregister_match(mtch) xt_unregister_match(AF_INET, mtch)
#define ipt_register_target(tgt) 	\
({	(tgt)->family = AF_INET;	\
 	xt_register_target(tgt); })
#define ipt_unregister_target(tgt) xt_unregister_target(tgt)

#define ipt_register_match(mtch) 	\
({	(mtch)->family = AF_INET;	\
	xt_register_match(mtch); })
#define ipt_unregister_match(mtch) xt_unregister_match(mtch)

//#define ipt_register_table(tbl, repl) xt_register_table(AF_INET, tbl, repl)
//#define ipt_unregister_table(tbl) xt_unregister_table(AF_INET, tbl)
+9 −5
Original line number Diff line number Diff line
@@ -334,11 +334,15 @@ ip6t_get_target(struct ip6t_entry *e)
#include <linux/init.h>
extern void ip6t_init(void) __init;

#define ip6t_register_target(tgt) xt_register_target(AF_INET6, tgt)
#define ip6t_unregister_target(tgt) xt_unregister_target(AF_INET6, tgt)

#define ip6t_register_match(match) xt_register_match(AF_INET6, match)
#define ip6t_unregister_match(match) xt_unregister_match(AF_INET6, match)
#define ip6t_register_target(tgt) 		\
({	(tgt)->family = AF_INET6;		\
 	xt_register_target(tgt); })
#define ip6t_unregister_target(tgt) xt_unregister_target(tgt)

#define ip6t_register_match(match)		\
({	(match)->family = AF_INET6;		\
	xt_register_match(match); })
#define ip6t_unregister_match(match) xt_unregister_match(match)

extern int ip6t_register_table(struct ip6t_table *table,
			       const struct ip6t_replace *repl);
+4 −2
Original line number Diff line number Diff line
@@ -1146,12 +1146,14 @@ void arpt_unregister_table(struct arpt_table *table)
static struct arpt_target arpt_standard_target = {
	.name		= ARPT_STANDARD_TARGET,
	.targetsize	= sizeof(int),
	.family		= NF_ARP,
};

static struct arpt_target arpt_error_target = {
	.name		= ARPT_ERROR_TARGET,
	.target		= arpt_error,
	.targetsize	= ARPT_FUNCTION_MAXNAMELEN,
	.family		= NF_ARP,
};

static struct nf_sockopt_ops arpt_sockopts = {
@@ -1171,8 +1173,8 @@ static int __init init(void)
	xt_proto_init(NF_ARP);

	/* Noone else will be downing sem now, so we won't sleep */
	xt_register_target(NF_ARP, &arpt_standard_target);
	xt_register_target(NF_ARP, &arpt_error_target);
	xt_register_target(&arpt_standard_target);
	xt_register_target(&arpt_error_target);

	/* Register setsockopt */
	ret = nf_register_sockopt(&arpt_sockopts);
Loading