xfrm: align nlattr properly when needed
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Šī revīzija ir iekļauta:

revīziju iesūtīja
David S. Miller

vecāks
73520786b0
revīzija
de95c4a46a
@@ -809,7 +809,8 @@ static int copy_to_user_state_extra(struct xfrm_state *x,
|
||||
goto out;
|
||||
}
|
||||
if (x->lastused) {
|
||||
ret = nla_put_u64(skb, XFRMA_LASTUSED, x->lastused);
|
||||
ret = nla_put_u64_64bit(skb, XFRMA_LASTUSED, x->lastused,
|
||||
XFRMA_PAD);
|
||||
if (ret)
|
||||
goto out;
|
||||
}
|
||||
@@ -1813,7 +1814,7 @@ static inline size_t xfrm_aevent_msgsize(struct xfrm_state *x)
|
||||
|
||||
return NLMSG_ALIGN(sizeof(struct xfrm_aevent_id))
|
||||
+ nla_total_size(replay_size)
|
||||
+ nla_total_size(sizeof(struct xfrm_lifetime_cur))
|
||||
+ nla_total_size_64bit(sizeof(struct xfrm_lifetime_cur))
|
||||
+ nla_total_size(sizeof(struct xfrm_mark))
|
||||
+ nla_total_size(4) /* XFRM_AE_RTHR */
|
||||
+ nla_total_size(4); /* XFRM_AE_ETHR */
|
||||
@@ -1848,7 +1849,8 @@ static int build_aevent(struct sk_buff *skb, struct xfrm_state *x, const struct
|
||||
}
|
||||
if (err)
|
||||
goto out_cancel;
|
||||
err = nla_put(skb, XFRMA_LTIME_VAL, sizeof(x->curlft), &x->curlft);
|
||||
err = nla_put_64bit(skb, XFRMA_LTIME_VAL, sizeof(x->curlft), &x->curlft,
|
||||
XFRMA_PAD);
|
||||
if (err)
|
||||
goto out_cancel;
|
||||
|
||||
@@ -2617,7 +2619,7 @@ static inline size_t xfrm_sa_len(struct xfrm_state *x)
|
||||
l += nla_total_size(sizeof(x->props.extra_flags));
|
||||
|
||||
/* Must count x->lastused as it may become non-zero behind our back. */
|
||||
l += nla_total_size(sizeof(u64));
|
||||
l += nla_total_size_64bit(sizeof(u64));
|
||||
|
||||
return l;
|
||||
}
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user