mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	xfrm: Refcount destination entry on xfrm_lookup
We return a destination entry without refcount if a socket policy is found in xfrm_lookup. This triggers a warning on a negative refcount when freeeing this dst entry. So take a refcount in this case to fix it. This refcount was forgotten when xfrm changed to cache bundles instead of policies for outgoing flows. Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com> Acked-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									8a4eb5734e
								
							
						
					
					
						commit
						fbd5060875
					
				
					 1 changed files with 2 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -1804,6 +1804,8 @@ struct dst_entry *xfrm_lookup(struct net *net, struct dst_entry *dst_orig,
 | 
			
		|||
				goto no_transform;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			dst_hold(&xdst->u.dst);
 | 
			
		||||
 | 
			
		||||
			spin_lock_bh(&xfrm_policy_sk_bundle_lock);
 | 
			
		||||
			xdst->u.dst.next = xfrm_policy_sk_bundles;
 | 
			
		||||
			xfrm_policy_sk_bundles = &xdst->u.dst;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue