From fe127c980e510953149cece424963152c90ab111 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Tue, 16 Oct 2001 07:53:34 +0000 Subject: prevent ip(6)tables-restore from crashing when a line contains -t --- ip6tables-restore.c | 16 ++++++++++++++++ iptables-restore.c | 18 +++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) 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 */ + 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); diff --git a/iptables-restore.c b/iptables-restore.c index 2f4d8768..8465beb1 100644 --- a/iptables-restore.c +++ b/iptables-restore.c @@ -4,7 +4,7 @@ * * This coude is distributed under the terms of GNU GPL * - * $Id: iptables-restore.c,v 1.13 2001/06/16 18:25:25 laforge Exp $ + * $Id: iptables-restore.c,v 1.14 2001/08/06 18:50:22 laforge Exp $ */ #include @@ -289,6 +289,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 */ + 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); -- cgit v1.2.3