Your message dated Sat, 14 Feb 2009 09:24:46 -0500
with message-id <[email protected]>
and subject line iptables-restore: segmentation fault with -tanything
has caused the Debian Bug report #458042,
regarding iptables-restore: segmentation fault with -tanything
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
458042: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=458042
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: iptables
Version: 1.3.8.0debian1-1
Severity: normal
Tags: patch

iptables-restore must not pass a table into do_command. It checks for
"-t arg" and "--table arg", but not "-targ". (On a related note, using
-targ does not work as expected).

This should fail gracefully, but crashes:

iptables-restore <(echo -e '*filter\n-A INPUT -tx\nCOMMIT')

And this should use table "filter", or perhaps raise an error, but
instead sets the table to (literally) "-tfilter":

iptables -tfilter -A INPUT

Regards,
Michael Spang


-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (500, 'testing'), (100, 'unstable'), (10, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.24-rc6-freyr (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages iptables depends on:
ii  libc6                         2.7-5      GNU C Library: Shared libraries

iptables recommends no packages.

-- no debconf information
diff -ur old/iptables/ip6tables.c new/iptables/ip6tables.c
--- old/iptables/ip6tables.c	2007-06-24 19:26:35.000000000 -0400
+++ new/iptables/ip6tables.c	2007-12-28 01:31:34.000000000 -0500
@@ -2160,7 +2160,7 @@
 			if (invert)
 				exit_error(PARAMETER_PROBLEM,
 					   "unexpected ! flag before --table");
-			*table = argv[optind-1];
+			*table = optarg;
 			break;
 
 		case 'x':
diff -ur old/iptables/ip6tables-restore.c new/iptables/ip6tables-restore.c
--- old/iptables/ip6tables-restore.c	2007-05-22 13:11:40.000000000 -0400
+++ new/iptables/ip6tables-restore.c	2007-12-28 01:35:10.000000000 -0500
@@ -383,7 +383,7 @@
 					*(param_buffer+param_len) = '\0';
 
 					/* check if table name specified */
-					if (!strncmp(param_buffer, "-t", 3)
+					if (!strncmp(param_buffer, "-t", 2)
                                             || !strncmp(param_buffer, "--table", 8)) {
 						exit_error(PARAMETER_PROBLEM, 
 						   "Line %u seems to have a "
diff -ur old/iptables/iptables.c new/iptables/iptables.c
--- old/iptables/iptables.c	2007-04-29 19:03:30.000000000 -0400
+++ new/iptables/iptables.c	2007-12-28 02:08:11.000000000 -0500
@@ -2249,7 +2249,7 @@
 			if (invert)
 				exit_error(PARAMETER_PROBLEM,
 					   "unexpected ! flag before --table");
-			*table = argv[optind-1];
+			*table = optarg;
 			break;
 
 		case 'x':
diff -ur old/iptables/iptables-restore.c new/iptables/iptables-restore.c
--- old/iptables/iptables-restore.c	2007-05-22 13:11:40.000000000 -0400
+++ new/iptables/iptables-restore.c	2007-12-28 01:20:00.000000000 -0500
@@ -386,7 +386,7 @@
 					param_buffer[param_len] = '\0';
 
 					/* check if table name specified */
-					if (!strncmp(param_buffer, "-t", 3)
+					if (!strncmp(param_buffer, "-t", 2)
                                             || !strncmp(param_buffer, "--table", 8)) {
 						exit_error(PARAMETER_PROBLEM, 
 						   "Line %u seems to have a "

--- End Message ---
--- Begin Message ---
Version: 1.4.2-1

Fixed somewhere about there.


--- End Message ---

Reply via email to