Signed-off-by: Pavel Emelyanov <[email protected]>
---
net/sunrpc/svcauth_unix.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/net/sunrpc/svcauth_unix.c b/net/sunrpc/svcauth_unix.c
index 8b378f9..560677d 100644
--- a/net/sunrpc/svcauth_unix.c
+++ b/net/sunrpc/svcauth_unix.c
@@ -220,10 +220,9 @@ static int ip_map_parse(struct cache_detail *cd,
switch (address.sa.sa_family) {
case AF_INET:
/* Form a mapped IPv4 address in sin6 */
- memset(&sin6, 0, sizeof(sin6));
sin6.sin6_family = AF_INET6;
- sin6.sin6_addr.s6_addr32[2] = htonl(0xffff);
- sin6.sin6_addr.s6_addr32[3] = address.s4.sin_addr.s_addr;
+ ipv6_addr_set_v4mapped(address.s4.sin_addr.s_addr,
+ &sin6.sin6_addr);
break;
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
case AF_INET6:
--
1.5.5.6
On Tue, Oct 05, 2010 at 08:48:02PM +0400, Pavel Emelyanov wrote:
> Signed-off-by: Pavel Emelyanov <[email protected]>
Thanks, applying.
(Assuming someone else is testing for ipv6 regressions, though--I don't
have a setup for it currently.)
--b.
> ---
> net/sunrpc/svcauth_unix.c | 5 ++---
> 1 files changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/net/sunrpc/svcauth_unix.c b/net/sunrpc/svcauth_unix.c
> index 8b378f9..560677d 100644
> --- a/net/sunrpc/svcauth_unix.c
> +++ b/net/sunrpc/svcauth_unix.c
> @@ -220,10 +220,9 @@ static int ip_map_parse(struct cache_detail *cd,
> switch (address.sa.sa_family) {
> case AF_INET:
> /* Form a mapped IPv4 address in sin6 */
> - memset(&sin6, 0, sizeof(sin6));
> sin6.sin6_family = AF_INET6;
> - sin6.sin6_addr.s6_addr32[2] = htonl(0xffff);
> - sin6.sin6_addr.s6_addr32[3] = address.s4.sin_addr.s_addr;
> + ipv6_addr_set_v4mapped(address.s4.sin_addr.s_addr,
> + &sin6.sin6_addr);
> break;
> #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
> case AF_INET6:
> --
> 1.5.5.6
>