OSDN Git Service

xfrm: fix a small bug in xfrm_sa_len()
authorEric Dumazet <edumazet@google.com>
Wed, 8 Dec 2021 20:20:19 +0000 (12:20 -0800)
committerSteffen Klassert <steffen.klassert@secunet.com>
Thu, 9 Dec 2021 09:23:05 +0000 (10:23 +0100)
copy_user_offload() will actually push a struct struct xfrm_user_offload,
which is different than (struct xfrm_state *)->xso
(struct xfrm_state_offload)

Fixes: d77e38e612a01 ("xfrm: Add an IPsec hardware offloading API")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/xfrm/xfrm_user.c

index 7c36cc1..0a2d2ba 100644 (file)
@@ -3058,7 +3058,7 @@ static inline unsigned int xfrm_sa_len(struct xfrm_state *x)
        if (x->props.extra_flags)
                l += nla_total_size(sizeof(x->props.extra_flags));
        if (x->xso.dev)
-                l += nla_total_size(sizeof(x->xso));
+                l += nla_total_size(sizeof(struct xfrm_user_offload));
        if (x->props.smark.v | x->props.smark.m) {
                l += nla_total_size(sizeof(x->props.smark.v));
                l += nla_total_size(sizeof(x->props.smark.m));