pr_debug("Entering %s(hook %u); sp at %u (UF %p)\n",
table->name, hook, origptr,
get_entry(table_base, private->underflow[hook]));
-@@ -970,6 +1010,7 @@ copy_entries_to_user(unsigned int total_
+@@ -974,6 +1014,7 @@ copy_entries_to_user(unsigned int total_
unsigned int i;
const struct ipt_entry_match *m;
const struct ipt_entry_target *t;
e = (struct ipt_entry *)(loc_cpu_entry + off);
if (copy_to_user(userptr + off
-@@ -980,6 +1021,14 @@ copy_entries_to_user(unsigned int total_
+@@ -983,6 +1024,14 @@ copy_entries_to_user(unsigned int total_
+ ret = -EFAULT;
goto free_counters;
}
-
++
+ flags = e->ip.flags & ~IPT_F_NO_DEF_MATCH;
+ if (copy_to_user(userptr + off
+ + offsetof(struct ipt_entry, ip.flags),
+ ret = -EFAULT;
+ goto free_counters;
+ }
-+
+
for (i = sizeof(struct ipt_entry);
i < e->target_offset;
- i += m->u.match_size) {