fixes segfault in iptables-save
diff --git a/iptables-save.c b/iptables-save.c
index 2e716e1..8795cb1 100644
--- a/iptables-save.c
+++ b/iptables-save.c
@@ -100,14 +100,15 @@
 }
 #endif
 
-static int print_match(const struct ipt_entry_match *e)
+static int print_match(const struct ipt_entry_match *e,
+			const struct ipt_ip *ip)
 {
 	struct iptables_match *match
 		= find_match(e->u.user.name, TRY_LOAD);
 
 	if (match) {
 		printf("-m %s ", e->u.user.name);
-		match->save(NULL, e);
+		match->save(ip, e);
 	} else {
 		if (e->u.match_size) {
 			fprintf(stderr,
@@ -168,7 +169,7 @@
 
 	/* Print matchinfo part */
 	if (e->target_offset) {
-		IPT_MATCH_ITERATE(e, print_match);
+		IPT_MATCH_ITERATE(e, print_match, &e->ip);
 	}
 
 	/* Print target name */	
@@ -181,7 +182,7 @@
 			= find_target(t->u.user.name, TRY_LOAD);
 
 		if (target)
-			target->save(NULL, t);
+			target->save(&e->ip, t);
 		else {
 			/* If some bits are non-zero, it implies we *need*
 			   to understand it */