diff --git a/conf.c b/conf.c index 6bb4c93..4e86508 100644 --- a/conf.c +++ b/conf.c @@ -118,11 +118,12 @@ static int get_bound_ports_ns(void *arg) static int conf_ports(const struct ctx *c, char optname, const char *optarg, struct port_fwd *fwd) { - int start_src, end_src, start_dst, end_dst, exclude_only = 1, i, port; char addr_buf[sizeof(struct in6_addr)] = { 0 }, *addr = addr_buf; + int start_src, end_src, start_dst, end_dst, exclude_only = 1, i; uint8_t exclude[PORT_BITMAP_SIZE] = { 0 }; char buf[BUFSIZ], *sep, *spec, *p; sa_family_t af = AF_UNSPEC; + unsigned port; if (!strcmp(optarg, "none")) { if (fwd->mode) @@ -204,11 +205,11 @@ static int conf_ports(const struct ctx *c, char optname, const char *optarg, p++; errno = 0; - port = strtol(p, &sep, 10); + port = strtoul(p, &sep, 10); if (sep == p) break; - if (port < 0 || port > USHRT_MAX || errno) + if (port > USHRT_MAX || errno) goto bad; switch (*sep) { @@ -271,11 +272,11 @@ static int conf_ports(const struct ctx *c, char optname, const char *optarg, break; errno = 0; - port = strtol(p, &sep, 10); + port = strtoul(p, &sep, 10); if (sep == p) break; - if (port < 0 || port > USHRT_MAX || errno) + if (port > USHRT_MAX || errno) goto bad; /* -p 22 diff --git a/tcp.c b/tcp.c index 509a0b3..d96232c 100644 --- a/tcp.c +++ b/tcp.c @@ -3182,7 +3182,7 @@ void tcp_sock_init(const struct ctx *c, int ns, sa_family_t af, static int tcp_sock_init_ns(void *arg) { struct ctx *c = (struct ctx *)arg; - int port; + unsigned port; ns_enter(c); @@ -3381,7 +3381,7 @@ struct tcp_port_rebind_arg { static int tcp_port_rebind(void *arg) { struct tcp_port_rebind_arg *a = (struct tcp_port_rebind_arg *)arg; - int port; + unsigned port; if (a->bind_in_ns) { ns_enter(a->c); diff --git a/udp.c b/udp.c index d17b3b4..27c3aa3 100644 --- a/udp.c +++ b/udp.c @@ -1193,7 +1193,7 @@ void udp_sock_init(const struct ctx *c, int ns, sa_family_t af, int udp_sock_init_ns(void *arg) { struct ctx *c = (struct ctx *)arg; - int dst; + unsigned dst; if (ns_enter(c)) return 0;