rem: if (tos != -1) {
add: if (string_to_number(s, 0, 255,tos) != -1) {
context: parse_tos(const unsigned char *s, struct ipt_tos_target_info *info){	unsigned int i;	int tos = string_to_number(s, 0, 255);	if (tos != -1) {		if (tos == IPTOS_LOWDELAY		    || tos == IPTOS_THROUGHPUT		    || tos == IPTOS_RELIABILITY		    || tos == IPTOS_MINCOST		    || tos == IPTOS_NORMALSVC) {		    	info->tos = (u_int8_t )tos;		    	return;		}	} else {		for (i = 0; i<sizeof(TOS_values)/sizeof(struct TOS_value); i++)			if (strcasecmp(s,TOS_values[i].name) == 0) {				info->tos = TOS_values[i].TOS;				return;			}	}	exit_error(PARAMETER_PROBLEM, "Bad TOS value `%s'", s);}