diff options
author | Harald Welte <laforge@gnumonks.org> | 2006-02-09 14:35:38 +0000 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2006-02-09 14:35:38 +0000 |
commit | 6f38a30f99966435e0c6b6f5f3ff497f8309ee81 (patch) | |
tree | 8f7b19f1a6ba840fcd63c8678f6b971d51a8228d | |
parent | d3476b294f6a0570b0ec3322f580d6446c6f20fe (diff) |
fix segfault or loading of invalid counters in ip[6]tables-restore (Olaf Rempel) (Closes: #437)
-rw-r--r-- | ip6tables-restore.c | 5 | ||||
-rw-r--r-- | iptables-restore.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/ip6tables-restore.c b/ip6tables-restore.c index cf69a6c7..f7eac680 100644 --- a/ip6tables-restore.c +++ b/ip6tables-restore.c @@ -266,7 +266,10 @@ int main(int argc, char *argv[]) char *ctrs; ctrs = strtok(NULL, " \t\n"); - parse_counters(ctrs, &count); + if (!ctrs || !parse_counters(ctrs, &count)) + exit_error(PARAMETER_PROBLEM, + "invalid policy counters " + "for chain '%s'\n", chain); } else { memset(&count, 0, diff --git a/iptables-restore.c b/iptables-restore.c index e2872cde..cc49c738 100644 --- a/iptables-restore.c +++ b/iptables-restore.c @@ -269,7 +269,10 @@ main(int argc, char *argv[]) char *ctrs; ctrs = strtok(NULL, " \t\n"); - parse_counters(ctrs, &count); + if (!ctrs || !parse_counters(ctrs, &count)) + exit_error(PARAMETER_PROBLEM, + "invalid policy counters " + "for chain '%s'\n", chain); } else { memset(&count, 0, |