forked from mirrors/linux
		
	xfrm: policy: xfrm_get_tos cannot fail
The comment makes it look like get_tos() is used to validate something, but it turns out the comment was about xfrm_find_bundle() which got removed years ago. xfrm_get_tos will return either the tos (ipv4) or 0 (ipv6). Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
This commit is contained in:
		
							parent
							
								
									960fdfdeb9
								
							
						
					
					
						commit
						f5e2bb4f5b
					
				
					 1 changed files with 5 additions and 14 deletions
				
			
		| 
						 | 
					@ -1538,19 +1538,13 @@ xfrm_tmpl_resolve(struct xfrm_policy **pols, int npols, const struct flowi *fl,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Check that the bundle accepts the flow and its components are
 | 
					static int xfrm_get_tos(const struct flowi *fl, int family)
 | 
				
			||||||
 * still valid.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static inline int xfrm_get_tos(const struct flowi *fl, int family)
 | 
					 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct xfrm_policy_afinfo *afinfo = xfrm_policy_get_afinfo(family);
 | 
						struct xfrm_policy_afinfo *afinfo;
 | 
				
			||||||
	int tos;
 | 
						int tos = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!afinfo)
 | 
						afinfo = xfrm_policy_get_afinfo(family);
 | 
				
			||||||
		return -EINVAL;
 | 
						tos = afinfo ? afinfo->get_tos(fl) : 0;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	tos = afinfo->get_tos(fl);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	xfrm_policy_put_afinfo(afinfo);
 | 
						xfrm_policy_put_afinfo(afinfo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1705,9 +1699,6 @@ static struct dst_entry *xfrm_bundle_create(struct xfrm_policy *policy,
 | 
				
			||||||
	xfrm_flowi_addr_get(fl, &saddr, &daddr, family);
 | 
						xfrm_flowi_addr_get(fl, &saddr, &daddr, family);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tos = xfrm_get_tos(fl, family);
 | 
						tos = xfrm_get_tos(fl, family);
 | 
				
			||||||
	err = tos;
 | 
					 | 
				
			||||||
	if (tos < 0)
 | 
					 | 
				
			||||||
		goto put_states;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dst_hold(dst);
 | 
						dst_hold(dst);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue