|  | @@ -3662,44 +3662,44 @@ next_option(const char *list, struct vec *val, struct vec *eq_val)
 | 
	
		
			
				|  |  |  reparse:
 | 
	
		
			
				|  |  |  	if (val == NULL || list == NULL || *list == '\0') {
 | 
	
		
			
				|  |  |  		/* End of the list */
 | 
	
		
			
				|  |  | -		list = NULL;
 | 
	
		
			
				|  |  | +		return NULL;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	/* Skip over leading LWS */
 | 
	
		
			
				|  |  | +	while (*list == ' ' || *list == '\t')
 | 
	
		
			
				|  |  | +		list++;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	val->ptr = list;
 | 
	
		
			
				|  |  | +	if ((list = strchr(val->ptr, ',')) != NULL) {
 | 
	
		
			
				|  |  | +		/* Comma found. Store length and shift the list ptr */
 | 
	
		
			
				|  |  | +		val->len = ((size_t)(list - val->ptr));
 | 
	
		
			
				|  |  | +		list++;
 | 
	
		
			
				|  |  |  	} else {
 | 
	
		
			
				|  |  | -		/* Skip over leading LWS */
 | 
	
		
			
				|  |  | -		while (*list == ' ' || *list == '\t')
 | 
	
		
			
				|  |  | -			list++;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		val->ptr = list;
 | 
	
		
			
				|  |  | -		if ((list = strchr(val->ptr, ',')) != NULL) {
 | 
	
		
			
				|  |  | -			/* Comma found. Store length and shift the list ptr */
 | 
	
		
			
				|  |  | -			val->len = ((size_t)(list - val->ptr));
 | 
	
		
			
				|  |  | -			list++;
 | 
	
		
			
				|  |  | -		} else {
 | 
	
		
			
				|  |  | -			/* This value is the last one */
 | 
	
		
			
				|  |  | -			list = val->ptr + strlen(val->ptr);
 | 
	
		
			
				|  |  | -			val->len = ((size_t)(list - val->ptr));
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		/* Adjust length for trailing LWS */
 | 
	
		
			
				|  |  | -		end = (int)val->len - 1;
 | 
	
		
			
				|  |  | -		while (end >= 0 && ((val->ptr[end] == ' ') || (val->ptr[end] == '\t')))
 | 
	
		
			
				|  |  | -			end--;
 | 
	
		
			
				|  |  | -		val->len = (size_t)(end + 1);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		if (val->len == 0) {
 | 
	
		
			
				|  |  | -			/* Ignore any empty entries. */
 | 
	
		
			
				|  |  | -			goto reparse;
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		if (eq_val != NULL) {
 | 
	
		
			
				|  |  | -			/* Value has form "x=y", adjust pointers and lengths
 | 
	
		
			
				|  |  | -			 * so that val points to "x", and eq_val points to "y". */
 | 
	
		
			
				|  |  | -			eq_val->len = 0;
 | 
	
		
			
				|  |  | -			eq_val->ptr = (const char *)memchr(val->ptr, '=', val->len);
 | 
	
		
			
				|  |  | -			if (eq_val->ptr != NULL) {
 | 
	
		
			
				|  |  | -				eq_val->ptr++; /* Skip over '=' character */
 | 
	
		
			
				|  |  | -				eq_val->len = ((size_t)(val->ptr - eq_val->ptr)) + val->len;
 | 
	
		
			
				|  |  | -				val->len = ((size_t)(eq_val->ptr - val->ptr)) - 1;
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | +		/* This value is the last one */
 | 
	
		
			
				|  |  | +		list = val->ptr + strlen(val->ptr);
 | 
	
		
			
				|  |  | +		val->len = ((size_t)(list - val->ptr));
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	/* Adjust length for trailing LWS */
 | 
	
		
			
				|  |  | +	end = (int)val->len - 1;
 | 
	
		
			
				|  |  | +	while (end >= 0 && ((val->ptr[end] == ' ') || (val->ptr[end] == '\t')))
 | 
	
		
			
				|  |  | +		end--;
 | 
	
		
			
				|  |  | +	val->len = (size_t)(end + 1);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	if (val->len == 0) {
 | 
	
		
			
				|  |  | +		/* Ignore any empty entries. */
 | 
	
		
			
				|  |  | +		goto reparse;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	if (eq_val != NULL) {
 | 
	
		
			
				|  |  | +		/* Value has form "x=y", adjust pointers and lengths
 | 
	
		
			
				|  |  | +		 * so that val points to "x", and eq_val points to "y". */
 | 
	
		
			
				|  |  | +		eq_val->len = 0;
 | 
	
		
			
				|  |  | +		eq_val->ptr = (const char *)memchr(val->ptr, '=', val->len);
 | 
	
		
			
				|  |  | +		if (eq_val->ptr != NULL) {
 | 
	
		
			
				|  |  | +			eq_val->ptr++; /* Skip over '=' character */
 | 
	
		
			
				|  |  | +			eq_val->len = ((size_t)(val->ptr - eq_val->ptr)) + val->len;
 | 
	
		
			
				|  |  | +			val->len = ((size_t)(eq_val->ptr - val->ptr)) - 1;
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 |