rem: if ((bits = string_to_number(slash+1, 0, 32)) == -1)
add: if (string_to_number(slash+1, 0, 32, &bits) == -1)
context: parse_to(char *arg, struct ip_nat_range *range){	char *slash;	struct in_addr *ip;	u_int32_t netmask;	int bits;	range->flags |= IP_NAT_RANGE_MAP_IPS;	slash = strchr(arg, '/');	if (slash)		*slash = '\0';	ip = dotted_to_addr(arg);	if (!ip)		exit_error(PARAMETER_PROBLEM, "Bad IP address `%s'\n",			   arg);	range->min_ip = ip->s_addr;	if (slash) {		if (strchr(slash+1, '.')) {			ip = dotted_to_addr(slash+1);			if (!ip)				exit_error(PARAMETER_PROBLEM, "Bad netmask `%s'\n",					   slash+1);			netmask = ip->s_addr;		}		else {			if ((bits = string_to_number(slash+1, 0, 32)) == -1)				exit_error(PARAMETER_PROBLEM, "Bad netmask `%s'\n",					   slash+1);			netmask = bits2netmask(bits);		}		/* Don't allow /0 (/1 is probably insane, too) */		if (netmask == 0)			exit_error(PARAMETER_PROBLEM, "Netmask needed\n");	}	else		netmask = ~0;	if (range->min_ip & ~netmask) {		if (slash)			*slash = '/';		exit_error(PARAMETER_PROBLEM, "Bad network address `%s'\n",			   arg);	}	range->max_ip = range->min_ip | ~netmask;}