diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2006-10-27 18:29:47 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-10-30 18:24:35 -0500 |
commit | 54489c14c058822f7019648b3718bd3820dee802 (patch) | |
tree | f51a5ff43b3f39b9bba582000f5752887f9c9df6 | |
parent | 201a95afaa324b23188eeec268f6bb0b4b70b710 (diff) |
[XFRM] xfrm_user: Fix unaligned accesses.
Use memcpy() to move xfrm_address_t objects in and out
of netlink messages. The vast majority of xfrm_user was
doing this properly, except for copy_from_user_state()
and copy_to_user_state().
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/xfrm/xfrm_user.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c index 2b2e59d8ffbc..b43e7647e125 100644 --- a/net/xfrm/xfrm_user.c +++ b/net/xfrm/xfrm_user.c | |||
@@ -323,7 +323,7 @@ static void copy_from_user_state(struct xfrm_state *x, struct xfrm_usersa_info * | |||
323 | x->props.replay_window = p->replay_window; | 323 | x->props.replay_window = p->replay_window; |
324 | x->props.reqid = p->reqid; | 324 | x->props.reqid = p->reqid; |
325 | x->props.family = p->family; | 325 | x->props.family = p->family; |
326 | x->props.saddr = p->saddr; | 326 | memcpy(&x->props.saddr, &p->saddr, sizeof(x->props.saddr)); |
327 | x->props.flags = p->flags; | 327 | x->props.flags = p->flags; |
328 | } | 328 | } |
329 | 329 | ||
@@ -545,7 +545,7 @@ static void copy_to_user_state(struct xfrm_state *x, struct xfrm_usersa_info *p) | |||
545 | memcpy(&p->lft, &x->lft, sizeof(p->lft)); | 545 | memcpy(&p->lft, &x->lft, sizeof(p->lft)); |
546 | memcpy(&p->curlft, &x->curlft, sizeof(p->curlft)); | 546 | memcpy(&p->curlft, &x->curlft, sizeof(p->curlft)); |
547 | memcpy(&p->stats, &x->stats, sizeof(p->stats)); | 547 | memcpy(&p->stats, &x->stats, sizeof(p->stats)); |
548 | p->saddr = x->props.saddr; | 548 | memcpy(&p->saddr, &x->props.saddr, sizeof(p->saddr)); |
549 | p->mode = x->props.mode; | 549 | p->mode = x->props.mode; |
550 | p->replay_window = x->props.replay_window; | 550 | p->replay_window = x->props.replay_window; |
551 | p->reqid = x->props.reqid; | 551 | p->reqid = x->props.reqid; |