static void parse_tcp_ports(const char *portstring, u_int16_t *ports) { char *buffer; char *cp; buffer = strdup(portstring); if ((cp = strchr(buffer, ':')) == NULL) ports[0] = ports[1] = parse_tcp_port(buffer); else { *cp = '\0'; cp++; ports[0] = buffer[0] ? parse_tcp_port(buffer) : 0; ports[1] = cp[0] ? parse_tcp_port(cp) : 0xFFFF; } free(buffer); }
static void parse_tcp_ports(const char *portstring, u_int16_t *ports) { char *buffer; char *cp; buffer = strdup(portstring); if ((cp = strchr(buffer, ':')) == NULL) ports[0] = ports[1] = parse_tcp_port(buffer); else { *cp = '\0'; cp++; 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); }