svn commit: r325575 - projects/pnfs-planb-server-stable11/sys/fs/nfsserver
Rick Macklem
rmacklem at FreeBSD.org
Thu Nov 9 11:47:49 UTC 2017
Author: rmacklem
Date: Thu Nov 9 11:47:47 2017
New Revision: 325575
URL: https://svnweb.freebsd.org/changeset/base/325575
Log:
Add the recent commit to stable/11 (r325341) that fixes dumping of addresses
for 64bit and NFSv4.1.
Modified:
projects/pnfs-planb-server-stable11/sys/fs/nfsserver/nfs_nfsdserv.c
projects/pnfs-planb-server-stable11/sys/fs/nfsserver/nfs_nfsdstate.c
Modified: projects/pnfs-planb-server-stable11/sys/fs/nfsserver/nfs_nfsdserv.c
==============================================================================
--- projects/pnfs-planb-server-stable11/sys/fs/nfsserver/nfs_nfsdserv.c Thu Nov 9 11:45:59 2017 (r325574)
+++ projects/pnfs-planb-server-stable11/sys/fs/nfsserver/nfs_nfsdserv.c Thu Nov 9 11:47:47 2017 (r325575)
@@ -3927,6 +3927,7 @@ nfsrvd_exchangeid(struct nfsrv_descript *nd, __unused
uint32_t sp4type, v41flags;
uint64_t owner_minor;
struct timespec verstime;
+ struct sockaddr_in *sad, *rad;
if (nfs_rootfhset == 0 || nfsd_checkrootexp(nd) != 0) {
nd->nd_repstat = NFSERR_WRONGSEC;
@@ -3950,6 +3951,13 @@ nfsrvd_exchangeid(struct nfsrv_descript *nd, __unused
NFSINITSOCKMUTEX(&clp->lc_req.nr_mtx);
NFSSOCKADDRALLOC(clp->lc_req.nr_nam);
NFSSOCKADDRSIZE(clp->lc_req.nr_nam, sizeof (struct sockaddr_in));
+ sad = NFSSOCKADDR(nd->nd_nam, struct sockaddr_in *);
+ rad = NFSSOCKADDR(clp->lc_req.nr_nam, struct sockaddr_in *);
+ rad->sin_family = AF_INET;
+ rad->sin_addr.s_addr = 0;
+ rad->sin_port = 0;
+ if (sad->sin_family == AF_INET)
+ rad->sin_addr.s_addr = sad->sin_addr.s_addr;
clp->lc_req.nr_cred = NULL;
NFSBCOPY(verf, clp->lc_verf, NFSX_VERF);
clp->lc_idlen = idlen;
Modified: projects/pnfs-planb-server-stable11/sys/fs/nfsserver/nfs_nfsdstate.c
==============================================================================
--- projects/pnfs-planb-server-stable11/sys/fs/nfsserver/nfs_nfsdstate.c Thu Nov 9 11:45:59 2017 (r325574)
+++ projects/pnfs-planb-server-stable11/sys/fs/nfsserver/nfs_nfsdstate.c Thu Nov 9 11:47:47 2017 (r325575)
@@ -3946,11 +3946,11 @@ nfsrv_getclientipaddr(struct nfsrv_descript *nd, struc
u_char protocol[5], addr[24];
int error = 0, cantparse = 0;
union {
- u_long ival;
+ in_addr_t ival;
u_char cval[4];
} ip;
union {
- u_short sval;
+ in_port_t sval;
u_char cval[2];
} port;
@@ -4044,8 +4044,10 @@ nfsrv_getclientipaddr(struct nfsrv_descript *nd, struc
}
if (cantparse) {
sad = NFSSOCKADDR(nd->nd_nam, struct sockaddr_in *);
- rad->sin_addr.s_addr = sad->sin_addr.s_addr;
- rad->sin_port = 0x0;
+ if (sad->sin_family == AF_INET) {
+ rad->sin_addr.s_addr = sad->sin_addr.s_addr;
+ rad->sin_port = 0x0;
+ }
clp->lc_program = 0;
}
nfsmout:
More information about the svn-src-projects
mailing list