summaryrefslogtreecommitdiffstats
path: root/ip6tables-restore.c
diff options
context:
space:
mode:
Diffstat (limited to 'ip6tables-restore.c')
-rw-r--r--ip6tables-restore.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/ip6tables-restore.c b/ip6tables-restore.c
index 5be8a1f5..d0c778a3 100644
--- a/ip6tables-restore.c
+++ b/ip6tables-restore.c
@@ -294,6 +294,22 @@ int main(int argc, char *argv[])
parsestart = buffer;
}
+ /* prevent iptables-restore from crashing in do_command
+ * when someone passes a "-t" on the line.
+ * - Ben Reser <ben@reser.org> */
+ if (strstr(buffer, "-t")) {
+ exit_error(PARAMETER_PROBLEM,
+ "Line %u seems to have a "
+ " -t table option.\n", line);
+ exit(1);
+ }
+ if (!strlen((char *) &curtable)) {
+ exit_error(PARAMETER_PROBLEM,
+ "Line %u seems to to have a "
+ " zero-length table name.\n", line);
+ exit(1);
+ }
+
add_argv(argv[0]);
add_argv("-t");
add_argv((char *) &curtable);