/* Number of counters (must be equal to current number of entries). */
unsigned int num_counters;
/* The old entries' counters. */
- struct ipt_counters *counters;
+ struct ipt_counters __user *counters;
/* The entries (hang off end: not really an array). */
struct ipt_entry entries[0];
struct ipt_entry entrytable[0];
};
+extern struct semaphore ipt_mutex;
+
/* Standard return verdict, or do jump. */
#define IPT_STANDARD_TARGET ""
/* Error verdict. */
/*
* Main firewall chains definitions and global var's definitions.
*/
+static DECLARE_MUTEX(ipt_mutex);
#ifdef __KERNEL__
#include <linux/init.h>
struct module *me;
};
+extern struct ipt_target *
+ipt_find_target_lock(const char *name, int *error, struct semaphore *mutex);
+extern struct arpt_target *
+arpt_find_target_lock(const char *name, int *error, struct semaphore *mutex);
+
extern int ipt_register_target(struct ipt_target *target);
extern void ipt_unregister_target(struct ipt_target *target);