diff options
Diffstat (limited to 'target/linux/generic/patches-4.1/610-netfilter_match_bypass_default_checks.patch')
-rw-r--r-- | target/linux/generic/patches-4.1/610-netfilter_match_bypass_default_checks.patch | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/target/linux/generic/patches-4.1/610-netfilter_match_bypass_default_checks.patch b/target/linux/generic/patches-4.1/610-netfilter_match_bypass_default_checks.patch index 1187845879..282cbdd0de 100644 --- a/target/linux/generic/patches-4.1/610-netfilter_match_bypass_default_checks.patch +++ b/target/linux/generic/patches-4.1/610-netfilter_match_bypass_default_checks.patch @@ -50,16 +50,25 @@ static bool ip_checkentry(const struct ipt_ip *ip) { -@@ -649,6 +675,8 @@ find_check_entry(struct ipt_entry *e, st - struct xt_mtchk_param mtpar; - struct xt_entry_match *ematch; +@@ -564,7 +590,7 @@ static void cleanup_match(struct xt_entr + } + + static int +-check_entry(const struct ipt_entry *e, const char *name) ++check_entry(struct ipt_entry *e, const char *name) + { + const struct xt_entry_target *t; + +@@ -573,6 +599,8 @@ check_entry(const struct ipt_entry *e, c + return -EINVAL; + } + ip_checkdefault(&e->ip); + - j = 0; - mtpar.net = net; - mtpar.table = name; -@@ -941,6 +969,7 @@ copy_entries_to_user(unsigned int total_ + if (e->target_offset + sizeof(struct xt_entry_target) > + e->next_offset) + return -EINVAL; +@@ -934,6 +962,7 @@ copy_entries_to_user(unsigned int total_ const struct xt_table_info *private = table->private; int ret = 0; const void *loc_cpu_entry; @@ -67,7 +76,7 @@ counters = alloc_counters(table); if (IS_ERR(counters)) -@@ -971,6 +1000,14 @@ copy_entries_to_user(unsigned int total_ +@@ -964,6 +993,14 @@ copy_entries_to_user(unsigned int total_ ret = -EFAULT; goto free_counters; } |