Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Nov 2008 16:35:13 +0000 (UTC)
From:      Doug Rabson <dfr@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r184694 - in user/dfr/gssapi/7/sys: . nfsserver xdr
Message-ID:  <200811051635.mA5GZD5o031862@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dfr
Date: Wed Nov  5 16:35:13 2008
New Revision: 184694
URL: http://svn.freebsd.org/changeset/base/184694

Log:
  MFC: 184692,184693

Modified:
  user/dfr/gssapi/7/sys/   (props changed)
  user/dfr/gssapi/7/sys/nfsserver/nfs_srvsubs.c
  user/dfr/gssapi/7/sys/xdr/xdr_mbuf.c

Modified: user/dfr/gssapi/7/sys/nfsserver/nfs_srvsubs.c
==============================================================================
--- user/dfr/gssapi/7/sys/nfsserver/nfs_srvsubs.c	Wed Nov  5 16:25:26 2008	(r184693)
+++ user/dfr/gssapi/7/sys/nfsserver/nfs_srvsubs.c	Wed Nov  5 16:35:13 2008	(r184694)
@@ -1104,6 +1104,7 @@ nfsrv_fhtovp(fhandle_t *fhp, int lockfla
 	int credflavor;
 	int vfslocked;
 	int numsecflavors, *secflavors;
+	int authsys;
 	int v3 = nfsd->nd_flag & ND_NFSV3;
 	int mountreq;
 
@@ -1124,6 +1125,15 @@ nfsrv_fhtovp(fhandle_t *fhp, int lockfla
 	    &numsecflavors, &secflavors);
 	if (error)
 		goto out;
+	if (numsecflavors == 0) {
+		/*
+		 * This can happen if the system is running with an
+		 * old mountd that doesn't pass in a secflavor list.
+		 */
+		numsecflavors = 1;
+		authsys = RPCAUTH_UNIX;
+		secflavors = &authsys;
+	}
 	credflavor = nfsd->nd_credflavor;
 	for (i = 0; i < numsecflavors; i++) {
 		if (secflavors[i] == credflavor)

Modified: user/dfr/gssapi/7/sys/xdr/xdr_mbuf.c
==============================================================================
--- user/dfr/gssapi/7/sys/xdr/xdr_mbuf.c	Wed Nov  5 16:25:26 2008	(r184693)
+++ user/dfr/gssapi/7/sys/xdr/xdr_mbuf.c	Wed Nov  5 16:35:13 2008	(r184694)
@@ -119,7 +119,10 @@ xdrmbuf_getall(XDR *xdrs)
 		xdrs->x_private = NULL;
 	}
 
-	m_adj(m, xdrs->x_handy);
+	if (m)
+		m_adj(m, xdrs->x_handy);
+	else
+		MGET(m, M_WAITOK, MT_DATA);
 	return (m);
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200811051635.mA5GZD5o031862>