diff options
Diffstat (limited to 'net/xfrm/xfrm_policy.c')
| -rw-r--r-- | net/xfrm/xfrm_policy.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 6e97855b584..65bd1ca5151 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -1353,8 +1353,9 @@ static inline struct xfrm_dst *xfrm_alloc_dst(struct net *net, int family)  	xdst = dst_alloc(dst_ops, NULL, 0, 0, 0);  	if (likely(xdst)) { -		memset(&xdst->u.rt6.rt6i_table, 0, -			sizeof(*xdst) - sizeof(struct dst_entry)); +		struct dst_entry *dst = &xdst->u.dst; + +		memset(dst + 1, 0, sizeof(*xdst) - sizeof(*dst));  		xdst->flo.ops = &xfrm_bundle_fc_ops;  	} else  		xdst = ERR_PTR(-ENOBUFS);  |