If a "principal" argument isn't provided for a Kerberized NFS mount,
the kernel would generate a bogus one with a ":/<path>" suffix. This would only occur for the case where there was no explicit "principal" argument and the getaddrinfo() call in mount_nfs.c failed to a return a cannonical name for the server. This patch fixes this unusual case. PR: 201073 Submitted by: masato@itc.naist.jp MFC after: 2 weeks
This commit is contained in:
parent
7c160e33d7
commit
2a3508eb48
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=285113
@ -779,7 +779,7 @@ nfs_mount(struct mount *mp)
|
||||
struct thread *td;
|
||||
char hst[MNAMELEN];
|
||||
u_char nfh[NFSX_FHMAX], krbname[100], dirpath[100], srvkrbname[100];
|
||||
char *opt, *name, *secname;
|
||||
char *cp, *opt, *name, *secname;
|
||||
int nametimeo = NFS_DEFAULT_NAMETIMEO;
|
||||
int negnametimeo = NFS_DEFAULT_NEGNAMETIMEO;
|
||||
int minvers = 0;
|
||||
@ -1158,8 +1158,12 @@ nfs_mount(struct mount *mp)
|
||||
|
||||
if (vfs_getopt(mp->mnt_optnew, "principal", (void **)&name, NULL) == 0)
|
||||
strlcpy(srvkrbname, name, sizeof (srvkrbname));
|
||||
else
|
||||
else {
|
||||
snprintf(srvkrbname, sizeof (srvkrbname), "nfs@%s", hst);
|
||||
cp = strchr(srvkrbname, ':');
|
||||
if (cp != NULL)
|
||||
*cp = '\0';
|
||||
}
|
||||
srvkrbnamelen = strlen(srvkrbname);
|
||||
|
||||
if (vfs_getopt(mp->mnt_optnew, "gssname", (void **)&name, NULL) == 0)
|
||||
|
Loading…
Reference in New Issue
Block a user