diff options
author | Harald Welte <laforge@gnumonks.org> | 2002-07-26 16:27:57 +0000 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2002-07-26 16:27:57 +0000 |
commit | d15fb34c777c10a67f8db2b6960bc094b3284fc5 (patch) | |
tree | bf5556ee7345a463ad7c1a7e45d76339f5b89e59 | |
parent | efa4133f7698c32c934239f54c44478528100121 (diff) |
check for invalid port ranges (Thomas Poehnitz)
-rw-r--r-- | extensions/libip6t_tcp.c | 4 | ||||
-rw-r--r-- | extensions/libip6t_udp.c | 4 | ||||
-rw-r--r-- | extensions/libipt_tcp.c | 4 | ||||
-rw-r--r-- | extensions/libipt_udp.c | 4 |
4 files changed, 16 insertions, 0 deletions
diff --git a/extensions/libip6t_tcp.c b/extensions/libip6t_tcp.c index 8e54dc44..1bf1d198 100644 --- a/extensions/libip6t_tcp.c +++ b/extensions/libip6t_tcp.c @@ -77,6 +77,10 @@ parse_tcp_ports(const char *portstring, u_int16_t *ports) ports[0] = buffer[0] ? parse_tcp_port(buffer) : 0; ports[1] = cp[0] ? parse_tcp_port(cp) : 0xFFFF; + + if (ports[0] > ports[1]) + exit_error(PARAMETER_PROBLEM, + "invalid portrange (min > max)"); } free(buffer); } diff --git a/extensions/libip6t_udp.c b/extensions/libip6t_udp.c index fb0505e8..a2e2fe64 100644 --- a/extensions/libip6t_udp.c +++ b/extensions/libip6t_udp.c @@ -69,6 +69,10 @@ parse_udp_ports(const char *portstring, u_int16_t *ports) ports[0] = buffer[0] ? parse_udp_port(buffer) : 0; ports[1] = cp[0] ? parse_udp_port(cp) : 0xFFFF; + + if (ports[0] > ports[1]) + exit_error(PARAMETER_PROBLEM, + "invalid portrange (min > max)"); } free(buffer); } diff --git a/extensions/libipt_tcp.c b/extensions/libipt_tcp.c index acf60501..1ff8f12e 100644 --- a/extensions/libipt_tcp.c +++ b/extensions/libipt_tcp.c @@ -77,6 +77,10 @@ parse_tcp_ports(const char *portstring, u_int16_t *ports) ports[0] = buffer[0] ? parse_tcp_port(buffer) : 0; ports[1] = cp[0] ? parse_tcp_port(cp) : 0xFFFF; + + if (ports[0] > ports[1]) + exit_error(PARAMETER_PROBLEM, + "invalid portrange (min > max)"); } free(buffer); } diff --git a/extensions/libipt_udp.c b/extensions/libipt_udp.c index 622fb436..ccea2105 100644 --- a/extensions/libipt_udp.c +++ b/extensions/libipt_udp.c @@ -69,6 +69,10 @@ parse_udp_ports(const char *portstring, u_int16_t *ports) ports[0] = buffer[0] ? parse_udp_port(buffer) : 0; ports[1] = cp[0] ? parse_udp_port(cp) : 0xFFFF; + + if (ports[0] > ports[1]) + exit_error(PARAMETER_PROBLEM, + "invalid portrange (min > max)"); } free(buffer); } |