[iptables PATCH 13/23] ebtables: Fix loading of non-standard targets

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Another fix for ebtables-restore: When encountering a non-standard
target, command_jump() tries to load it and may retrieve an already
loaded one taken from xtables_targets. Detect this by checking whether
option_offset field is non-zero (i.e., merge_options() has already been
called for it) and don't allocate per-target data (which would leak
memory) or merge options again (which would break rule parsing
afterwards).

Signed-off-by: Phil Sutter <phil@xxxxxx>
---
 iptables/xtables-eb.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/iptables/xtables-eb.c b/iptables/xtables-eb.c
index 644bc63a747c6..06ca5daa20541 100644
--- a/iptables/xtables-eb.c
+++ b/iptables/xtables-eb.c
@@ -392,6 +392,11 @@ static struct xtables_target *command_jump(struct iptables_command_state *cs,
 	if (!target)
 		return NULL;
 
+	/* avoid allocating data and merging options if target was
+	 * already loaded (i.e. returned from xtables_targets list) */
+	if (target->option_offset)
+		return target;
+
 	size = XT_ALIGN(sizeof(struct xt_entry_target))
 		+ target->size;
 
-- 
2.18.0

--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux