xfrm: set err and extack on failure to create pcpu SA

xfrm_state_construct can fail without setting an error if the
requested pcpu_num value is too big. Set err and add an extack message
to avoid confusing userspace.

Fixes: 1ddf9916ac ("xfrm: Add support for per cpu xfrm state handling.")
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
This commit is contained in:
Sabrina Dubroca
2025-10-16 12:39:16 +02:00
committed by Steffen Klassert
parent 7f02285764
commit 1dcf617bec

View File

@@ -947,8 +947,11 @@ static struct xfrm_state *xfrm_state_construct(struct net *net,
if (attrs[XFRMA_SA_PCPU]) {
x->pcpu_num = nla_get_u32(attrs[XFRMA_SA_PCPU]);
if (x->pcpu_num >= num_possible_cpus())
if (x->pcpu_num >= num_possible_cpus()) {
err = -ERANGE;
NL_SET_ERR_MSG(extack, "pCPU number too big");
goto error;
}
}
err = __xfrm_init_state(x, extack);