Commit a1caa322 authored by Arnaud Ebalard's avatar Arnaud Ebalard Committed by David S. Miller

XFRM: copy_to_user_kmaddress() reports local address twice

While adding support for MIGRATE/KMADDRESS in strongSwan (as specified
in draft-ebalard-mext-pfkey-enhanced-migrate-00), Andreas Steffen
noticed that XFRMA_KMADDRESS attribute passed to userland contains the
local address twice (remote provides local address instead of remote
one).

This bug in copy_to_user_kmaddress() affects only key managers that use
native XFRM interface (key managers that use PF_KEY are not affected).

For the record, the bug was in the initial changeset I posted which
added support for KMADDRESS (13c1d189
'xfrm: MIGRATE enhancements (draft-ebalard-mext-pfkey-enhanced-migrate)').
Signed-off-by: default avatarArnaud Ebalard <arno@natisbad.org>
Reported-by: default avatarAndreas Steffen <andreas.steffen@strongswan.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 55c8eb6c
...@@ -1816,7 +1816,7 @@ static int copy_to_user_kmaddress(struct xfrm_kmaddress *k, struct sk_buff *skb) ...@@ -1816,7 +1816,7 @@ static int copy_to_user_kmaddress(struct xfrm_kmaddress *k, struct sk_buff *skb)
uk.family = k->family; uk.family = k->family;
uk.reserved = k->reserved; uk.reserved = k->reserved;
memcpy(&uk.local, &k->local, sizeof(uk.local)); memcpy(&uk.local, &k->local, sizeof(uk.local));
memcpy(&uk.remote, &k->local, sizeof(uk.remote)); memcpy(&uk.remote, &k->remote, sizeof(uk.remote));
return nla_put(skb, XFRMA_KMADDRESS, sizeof(uk), &uk); return nla_put(skb, XFRMA_KMADDRESS, sizeof(uk), &uk);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment