diff options
Diffstat (limited to 'net/xfrm/xfrm_policy.c')
| -rw-r--r-- | net/xfrm/xfrm_policy.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 8b3ef404c79..6459588befc 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -1340,10 +1340,13 @@ static inline struct xfrm_dst *xfrm_alloc_dst(struct net *net, int family)  	default:  		BUG();  	} -	xdst = dst_alloc(dst_ops) ?: ERR_PTR(-ENOBUFS); +	xdst = dst_alloc(dst_ops);  	xfrm_policy_put_afinfo(afinfo); -	xdst->flo.ops = &xfrm_bundle_fc_ops; +	if (likely(xdst)) +		xdst->flo.ops = &xfrm_bundle_fc_ops; +	else +		xdst = ERR_PTR(-ENOBUFS);  	return xdst;  }  |