summaryrefslogtreecommitdiffstats
path: root/iptables.c
diff options
context:
space:
mode:
authormarc <marc>2000-04-22 23:16:27 +0000
committermarc <marc>2000-04-22 23:16:27 +0000
commit00c1c8bd5e5fcc70db3fb3b837f1ad9bb66c0642 (patch)
tree39f8cec8cff7a78b2fea632a28f6b5a74bf441da /iptables.c
parent7fb79f4e314a3fa65df3085bae71e8c12da630de (diff)
Fix for -j match coredumping reported by Erik Tews <erik.tews@gmx.net>.
Diffstat (limited to 'iptables.c')
-rw-r--r--iptables.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/iptables.c b/iptables.c
index a6e16ae..cf6b04c 100644
--- a/iptables.c
+++ b/iptables.c
@@ -1430,7 +1430,7 @@ generate_entry(const struct ipt_entry *fw,
size = sizeof(struct ipt_entry);
for (m = matches; m; m = m->next)
- size += m->m->match_size;
+ size += m->m ? m->m->match_size : 0;
e = fw_malloc(size + target->target_size);
*e = *fw;
@@ -1439,8 +1439,10 @@ generate_entry(const struct ipt_entry *fw,
size = 0;
for (m = matches; m; m = m->next) {
- memcpy(e->elems + size, m->m, m->m->match_size);
- size += m->m->match_size;
+ if (m->m) {
+ memcpy(e->elems + size, m->m, m->m->match_size);
+ size += m->m->match_size;
+ }
}
memcpy(e->elems + size, target, target->target_size);