diff options
Diffstat (limited to 'net/sunrpc/svcauth_unix.c')
| -rw-r--r-- | net/sunrpc/svcauth_unix.c | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/net/sunrpc/svcauth_unix.c b/net/sunrpc/svcauth_unix.c index 7e5707e2d6b6..1020d54b01d0 100644 --- a/net/sunrpc/svcauth_unix.c +++ b/net/sunrpc/svcauth_unix.c | |||
| @@ -145,7 +145,7 @@ static void ip_map_request(struct cache_detail *cd, | |||
| 145 | { | 145 | { |
| 146 | char text_addr[20]; | 146 | char text_addr[20]; |
| 147 | struct ip_map *im = container_of(h, struct ip_map, h); | 147 | struct ip_map *im = container_of(h, struct ip_map, h); |
| 148 | __u32 addr = im->m_addr.s_addr; | 148 | __be32 addr = im->m_addr.s_addr; |
| 149 | 149 | ||
| 150 | snprintf(text_addr, 20, "%u.%u.%u.%u", | 150 | snprintf(text_addr, 20, "%u.%u.%u.%u", |
| 151 | ntohl(addr) >> 24 & 0xff, | 151 | ntohl(addr) >> 24 & 0xff, |
| @@ -249,10 +249,10 @@ static int ip_map_show(struct seq_file *m, | |||
| 249 | 249 | ||
| 250 | seq_printf(m, "%s %d.%d.%d.%d %s\n", | 250 | seq_printf(m, "%s %d.%d.%d.%d %s\n", |
| 251 | im->m_class, | 251 | im->m_class, |
| 252 | htonl(addr.s_addr) >> 24 & 0xff, | 252 | ntohl(addr.s_addr) >> 24 & 0xff, |
| 253 | htonl(addr.s_addr) >> 16 & 0xff, | 253 | ntohl(addr.s_addr) >> 16 & 0xff, |
| 254 | htonl(addr.s_addr) >> 8 & 0xff, | 254 | ntohl(addr.s_addr) >> 8 & 0xff, |
| 255 | htonl(addr.s_addr) >> 0 & 0xff, | 255 | ntohl(addr.s_addr) >> 0 & 0xff, |
| 256 | dom | 256 | dom |
| 257 | ); | 257 | ); |
| 258 | return 0; | 258 | return 0; |
| @@ -410,7 +410,7 @@ svcauth_unix_set_client(struct svc_rqst *rqstp) | |||
| 410 | } | 410 | } |
| 411 | 411 | ||
| 412 | static int | 412 | static int |
| 413 | svcauth_null_accept(struct svc_rqst *rqstp, u32 *authp) | 413 | svcauth_null_accept(struct svc_rqst *rqstp, __be32 *authp) |
| 414 | { | 414 | { |
| 415 | struct kvec *argv = &rqstp->rq_arg.head[0]; | 415 | struct kvec *argv = &rqstp->rq_arg.head[0]; |
| 416 | struct kvec *resv = &rqstp->rq_res.head[0]; | 416 | struct kvec *resv = &rqstp->rq_res.head[0]; |
| @@ -427,7 +427,7 @@ svcauth_null_accept(struct svc_rqst *rqstp, u32 *authp) | |||
| 427 | *authp = rpc_autherr_badcred; | 427 | *authp = rpc_autherr_badcred; |
| 428 | return SVC_DENIED; | 428 | return SVC_DENIED; |
| 429 | } | 429 | } |
| 430 | if (svc_getu32(argv) != RPC_AUTH_NULL || svc_getu32(argv) != 0) { | 430 | if (svc_getu32(argv) != htonl(RPC_AUTH_NULL) || svc_getu32(argv) != 0) { |
| 431 | dprintk("svc: bad null verf\n"); | 431 | dprintk("svc: bad null verf\n"); |
| 432 | *authp = rpc_autherr_badverf; | 432 | *authp = rpc_autherr_badverf; |
| 433 | return SVC_DENIED; | 433 | return SVC_DENIED; |
| @@ -441,8 +441,8 @@ svcauth_null_accept(struct svc_rqst *rqstp, u32 *authp) | |||
| 441 | return SVC_DROP; /* kmalloc failure - client must retry */ | 441 | return SVC_DROP; /* kmalloc failure - client must retry */ |
| 442 | 442 | ||
| 443 | /* Put NULL verifier */ | 443 | /* Put NULL verifier */ |
| 444 | svc_putu32(resv, RPC_AUTH_NULL); | 444 | svc_putnl(resv, RPC_AUTH_NULL); |
| 445 | svc_putu32(resv, 0); | 445 | svc_putnl(resv, 0); |
| 446 | 446 | ||
| 447 | return SVC_OK; | 447 | return SVC_OK; |
| 448 | } | 448 | } |
| @@ -472,7 +472,7 @@ struct auth_ops svcauth_null = { | |||
| 472 | 472 | ||
| 473 | 473 | ||
| 474 | static int | 474 | static int |
| 475 | svcauth_unix_accept(struct svc_rqst *rqstp, u32 *authp) | 475 | svcauth_unix_accept(struct svc_rqst *rqstp, __be32 *authp) |
| 476 | { | 476 | { |
| 477 | struct kvec *argv = &rqstp->rq_arg.head[0]; | 477 | struct kvec *argv = &rqstp->rq_arg.head[0]; |
| 478 | struct kvec *resv = &rqstp->rq_res.head[0]; | 478 | struct kvec *resv = &rqstp->rq_res.head[0]; |
| @@ -488,31 +488,31 @@ svcauth_unix_accept(struct svc_rqst *rqstp, u32 *authp) | |||
| 488 | 488 | ||
| 489 | svc_getu32(argv); /* length */ | 489 | svc_getu32(argv); /* length */ |
| 490 | svc_getu32(argv); /* time stamp */ | 490 | svc_getu32(argv); /* time stamp */ |
| 491 | slen = XDR_QUADLEN(ntohl(svc_getu32(argv))); /* machname length */ | 491 | slen = XDR_QUADLEN(svc_getnl(argv)); /* machname length */ |
| 492 | if (slen > 64 || (len -= (slen + 3)*4) < 0) | 492 | if (slen > 64 || (len -= (slen + 3)*4) < 0) |
| 493 | goto badcred; | 493 | goto badcred; |
| 494 | argv->iov_base = (void*)((u32*)argv->iov_base + slen); /* skip machname */ | 494 | argv->iov_base = (void*)((__be32*)argv->iov_base + slen); /* skip machname */ |
| 495 | argv->iov_len -= slen*4; | 495 | argv->iov_len -= slen*4; |
| 496 | 496 | ||
| 497 | cred->cr_uid = ntohl(svc_getu32(argv)); /* uid */ | 497 | cred->cr_uid = svc_getnl(argv); /* uid */ |
| 498 | cred->cr_gid = ntohl(svc_getu32(argv)); /* gid */ | 498 | cred->cr_gid = svc_getnl(argv); /* gid */ |
| 499 | slen = ntohl(svc_getu32(argv)); /* gids length */ | 499 | slen = svc_getnl(argv); /* gids length */ |
| 500 | if (slen > 16 || (len -= (slen + 2)*4) < 0) | 500 | if (slen > 16 || (len -= (slen + 2)*4) < 0) |
| 501 | goto badcred; | 501 | goto badcred; |
| 502 | cred->cr_group_info = groups_alloc(slen); | 502 | cred->cr_group_info = groups_alloc(slen); |
| 503 | if (cred->cr_group_info == NULL) | 503 | if (cred->cr_group_info == NULL) |
| 504 | return SVC_DROP; | 504 | return SVC_DROP; |
| 505 | for (i = 0; i < slen; i++) | 505 | for (i = 0; i < slen; i++) |
| 506 | GROUP_AT(cred->cr_group_info, i) = ntohl(svc_getu32(argv)); | 506 | GROUP_AT(cred->cr_group_info, i) = svc_getnl(argv); |
| 507 | 507 | ||
| 508 | if (svc_getu32(argv) != RPC_AUTH_NULL || svc_getu32(argv) != 0) { | 508 | if (svc_getu32(argv) != htonl(RPC_AUTH_NULL) || svc_getu32(argv) != 0) { |
| 509 | *authp = rpc_autherr_badverf; | 509 | *authp = rpc_autherr_badverf; |
| 510 | return SVC_DENIED; | 510 | return SVC_DENIED; |
| 511 | } | 511 | } |
| 512 | 512 | ||
| 513 | /* Put NULL verifier */ | 513 | /* Put NULL verifier */ |
| 514 | svc_putu32(resv, RPC_AUTH_NULL); | 514 | svc_putnl(resv, RPC_AUTH_NULL); |
| 515 | svc_putu32(resv, 0); | 515 | svc_putnl(resv, 0); |
| 516 | 516 | ||
| 517 | return SVC_OK; | 517 | return SVC_OK; |
| 518 | 518 | ||
