diff options
author | /C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org> | 2005-02-01 15:14:15 +0000 |
---|---|---|
committer | /C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org> | 2005-02-01 15:14:15 +0000 |
commit | c0890bde7328e6308d476d2f7a3e443e216bf1c2 (patch) | |
tree | ad3fb69383380a2233ea28b7cce1afa7976535e3 /extensions | |
parent | 7deef4c8eeeccfb5d081b3f8f8ff5c02dceb075f (diff) |
check for colons
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/libipt_SNAT.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/extensions/libipt_SNAT.c b/extensions/libipt_SNAT.c index aca4a81..f10d041 100644 --- a/extensions/libipt_SNAT.c +++ b/extensions/libipt_SNAT.c @@ -65,7 +65,7 @@ static struct ipt_entry_target * parse_to(char *arg, int portok, struct ipt_natinfo *info) { struct ip_nat_range range; - char *colon, *dash; + char *colon, *dash, *error; struct in_addr *ip; memset(&range, 0, sizeof(range)); @@ -85,6 +85,11 @@ parse_to(char *arg, int portok, struct ipt_natinfo *info) exit_error(PARAMETER_PROBLEM, "Port `%s' not valid\n", colon+1); + error = strchr(colon+1, ':'); + if (error) + exit_error(PARAMETER_PROBLEM, + "Invalid port:port syntax - use dash\n"); + dash = strchr(colon, '-'); if (!dash) { range.min.tcp.port |