forked from mirrors/linux
		
	bpf: Switch to offsetofend in BPF_PROG_TEST_RUN
Switch existing pattern of "offsetof(..., member) + FIELD_SIZEOF(..., member)' to "offsetofend(..., member)" which does exactly what we need without all the copy-paste. Suggested-by: Andrii Nakryiko <andriin@fb.com> Signed-off-by: Stanislav Fomichev <sdf@google.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Andrii Nakryiko <andriin@fb.com> Link: https://lore.kernel.org/bpf/20191210191933.105321-1-sdf@google.com
This commit is contained in:
		
							parent
							
								
									09c4708d3c
								
							
						
					
					
						commit
						b590cb5f80
					
				
					 1 changed files with 4 additions and 8 deletions
				
			
		|  | @ -252,22 +252,19 @@ static int convert___skb_to_skb(struct sk_buff *skb, struct __sk_buff *__skb) | ||||||
| 
 | 
 | ||||||
| 	/* priority is allowed */ | 	/* priority is allowed */ | ||||||
| 
 | 
 | ||||||
| 	if (!range_is_zero(__skb, offsetof(struct __sk_buff, priority) + | 	if (!range_is_zero(__skb, offsetofend(struct __sk_buff, priority), | ||||||
| 			   FIELD_SIZEOF(struct __sk_buff, priority), |  | ||||||
| 			   offsetof(struct __sk_buff, cb))) | 			   offsetof(struct __sk_buff, cb))) | ||||||
| 		return -EINVAL; | 		return -EINVAL; | ||||||
| 
 | 
 | ||||||
| 	/* cb is allowed */ | 	/* cb is allowed */ | ||||||
| 
 | 
 | ||||||
| 	if (!range_is_zero(__skb, offsetof(struct __sk_buff, cb) + | 	if (!range_is_zero(__skb, offsetofend(struct __sk_buff, cb), | ||||||
| 			   FIELD_SIZEOF(struct __sk_buff, cb), |  | ||||||
| 			   offsetof(struct __sk_buff, tstamp))) | 			   offsetof(struct __sk_buff, tstamp))) | ||||||
| 		return -EINVAL; | 		return -EINVAL; | ||||||
| 
 | 
 | ||||||
| 	/* tstamp is allowed */ | 	/* tstamp is allowed */ | ||||||
| 
 | 
 | ||||||
| 	if (!range_is_zero(__skb, offsetof(struct __sk_buff, tstamp) + | 	if (!range_is_zero(__skb, offsetofend(struct __sk_buff, tstamp), | ||||||
| 			   FIELD_SIZEOF(struct __sk_buff, tstamp), |  | ||||||
| 			   sizeof(struct __sk_buff))) | 			   sizeof(struct __sk_buff))) | ||||||
| 		return -EINVAL; | 		return -EINVAL; | ||||||
| 
 | 
 | ||||||
|  | @ -437,8 +434,7 @@ static int verify_user_bpf_flow_keys(struct bpf_flow_keys *ctx) | ||||||
| 
 | 
 | ||||||
| 	/* flags is allowed */ | 	/* flags is allowed */ | ||||||
| 
 | 
 | ||||||
| 	if (!range_is_zero(ctx, offsetof(struct bpf_flow_keys, flags) + | 	if (!range_is_zero(ctx, offsetofend(struct bpf_flow_keys, flags), | ||||||
| 			   FIELD_SIZEOF(struct bpf_flow_keys, flags), |  | ||||||
| 			   sizeof(struct bpf_flow_keys))) | 			   sizeof(struct bpf_flow_keys))) | ||||||
| 		return -EINVAL; | 		return -EINVAL; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Stanislav Fomichev
						Stanislav Fomichev