Do not rely on `s' being incremented before taking the address of it
The order of evaluation for the arguments of a function is not defined by the standard.
This commit is contained in:
		
							
								
								
									
										12
									
								
								cut.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								cut.c
									
									
									
									
									
								
							| @@ -60,8 +60,16 @@ parselist(char *str) | ||||
| 	if(!(r = malloc(n * sizeof(Range)))) | ||||
| 		eprintf("malloc:"); | ||||
| 	for(s = str; n; n--, s++) { | ||||
| 		r->min = (*s == '-') ? 1 : strtoul(s, &s, 10); | ||||
| 		r->max = (*s == '-') ? strtoul(++s, &s, 10) : r->min; | ||||
| 		if (*s == '-') | ||||
| 			r->min = 1; | ||||
| 		else | ||||
| 			r->min = strtoul(s, &s, 10); | ||||
| 		if (*s == '-') { | ||||
| 			s++; | ||||
| 			r->max = strtoul(s, &s, 10); | ||||
| 		} else { | ||||
| 			r->max = r->min; | ||||
| 		} | ||||
| 		r->next = NULL; | ||||
| 		if(!r->min || (r->max && r->max < r->min) || (*s && *s != ',')) | ||||
| 			eprintf("cut: bad list value\n"); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user