xfrm: Fix acquire state insertion.

A recent commit jumped over the dst hash computation and
left the symbol uninitialized. Fix this by explicitly
computing the dst hash before it is used.

Fixes: 0045e3d806 ("xfrm: Cache used outbound xfrm states at the policy.")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
This commit is contained in:
Steffen Klassert 2024-11-14 12:06:56 +01:00
parent 9e1a6db68e
commit a35672819f

View File

@ -1470,6 +1470,7 @@ xfrm_state_find(const xfrm_address_t *daddr, const xfrm_address_t *saddr,
x->km.state = XFRM_STATE_ACQ; x->km.state = XFRM_STATE_ACQ;
x->dir = XFRM_SA_DIR_OUT; x->dir = XFRM_SA_DIR_OUT;
list_add(&x->km.all, &net->xfrm.state_all); list_add(&x->km.all, &net->xfrm.state_all);
h = xfrm_dst_hash(net, daddr, saddr, tmpl->reqid, encap_family);
XFRM_STATE_INSERT(bydst, &x->bydst, XFRM_STATE_INSERT(bydst, &x->bydst,
net->xfrm.state_bydst + h, net->xfrm.state_bydst + h,
x->xso.type); x->xso.type);