diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2010-07-01 16:45:26 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2010-07-01 16:45:26 +0200 |
commit | c4413a601ba46e336e624b035a1b69f7aa1a9318 (patch) | |
tree | 9be01a914716034e0f9ec886f3e038d58800da91 | |
parent | fd3827bc74b6d9e5acb7f5fcf79e6e1cb326640d (diff) | |
download | conntrack-tools-c4413a601ba46e336e624b035a1b69f7aa1a9318.tar.gz conntrack-tools-c4413a601ba46e336e624b035a1b69f7aa1a9318.zip |
conntrack: --[src|dst|any]-nat requires IP:PORT as argument
This patch restricts the behaviour that we previously introduced
in 142606c60808b3ab0496155ac3d086765e6baef3.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r-- | qa/testsuite/03nat | 4 | ||||
-rw-r--r-- | src/conntrack.c | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/qa/testsuite/03nat b/qa/testsuite/03nat index 8043af6..69fbff7 100644 --- a/qa/testsuite/03nat +++ b/qa/testsuite/03nat @@ -29,8 +29,8 @@ # create -I -s 1.1.1.1 -d 2.2.2.2 --dst-nat 3.3.3.3:80 -p tcp --sport 10 --dport 20 --state LISTEN -u SEEN_REPLY -t 50 ; OK # show --L --dst-nat :80 ; OK +-L --dst-nat 3.3.3.3:80 ; OK # show --L --any-nat :80 ; OK +-L --any-nat 3.3.3.3:80 ; OK # delete -D -s 1.1.1.1 ; OK diff --git a/src/conntrack.c b/src/conntrack.c index 82fe844..a5b49dd 100644 --- a/src/conntrack.c +++ b/src/conntrack.c @@ -816,6 +816,8 @@ nat_parse(char *arg, int portok, struct nf_conntrack *obj, int type) if (colon) { uint16_t port; + *colon = '\0'; + if (!portok) exit_error(PARAMETER_PROBLEM, "Need TCP or UDP with port specification"); @@ -841,7 +843,7 @@ nat_parse(char *arg, int portok, struct nf_conntrack *obj, int type) } if (parse_addr(arg, &parse) == AF_UNSPEC) - return; + exit_error(PARAMETER_PROBLEM, "Invalid IP address `%s'", arg); if (type == CT_OPT_SRC_NAT || type == CT_OPT_ANY_NAT) nfct_set_attr_u32(obj, ATTR_SNAT_IPV4, parse.v4); |