summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Paetzel <jpaetzel@FreeBSD.org>2016-01-01 17:06:16 +0000
committerJosh Paetzel <jpaetzel@FreeBSD.org>2016-01-01 17:06:16 +0000
commit21d7e927b51f507d8deb1dce3ae05b1bb19dbb04 (patch)
tree999f4281209e2cacf1b5b91f31efe8360c331e34
parentd52aff3c7a1fe921e94c03cc4e2ef3b9b9458c92 (diff)
Notes
-rw-r--r--sys/kgssapi/gss_impl.c19
-rw-r--r--usr.sbin/gssd/gssd.c2
2 files changed, 13 insertions, 8 deletions
diff --git a/sys/kgssapi/gss_impl.c b/sys/kgssapi/gss_impl.c
index ab6e55bc377d..3a427a5e8126 100644
--- a/sys/kgssapi/gss_impl.c
+++ b/sys/kgssapi/gss_impl.c
@@ -105,14 +105,17 @@ sys_gssd_syscall(struct thread *td, struct gssd_syscall_args *uap)
if (error)
return (error);
- sun.sun_family = AF_LOCAL;
- strcpy(sun.sun_path, path);
- sun.sun_len = SUN_LEN(&sun);
-
- nconf = getnetconfigent("local");
- cl = clnt_reconnect_create(nconf,
- (struct sockaddr *) &sun, GSSD, GSSDVERS,
- RPC_MAXDATASIZE, RPC_MAXDATASIZE);
+ if (path[0] != '\0') {
+ sun.sun_family = AF_LOCAL;
+ strcpy(sun.sun_path, path);
+ sun.sun_len = SUN_LEN(&sun);
+
+ nconf = getnetconfigent("local");
+ cl = clnt_reconnect_create(nconf,
+ (struct sockaddr *) &sun, GSSD, GSSDVERS,
+ RPC_MAXDATASIZE, RPC_MAXDATASIZE);
+ } else
+ cl = NULL;
mtx_lock(&kgss_gssd_lock);
oldcl = kgss_gssd_handle;
diff --git a/usr.sbin/gssd/gssd.c b/usr.sbin/gssd/gssd.c
index e85dfd7676e6..f3e5ce969edb 100644
--- a/usr.sbin/gssd/gssd.c
+++ b/usr.sbin/gssd/gssd.c
@@ -254,6 +254,7 @@ main(int argc, char **argv)
gssd_syscall(_PATH_GSSDSOCK);
svc_run();
+ gssd_syscall("");
return (0);
}
@@ -1285,6 +1286,7 @@ void gssd_terminate(int sig __unused)
if (hostbased_initiator_cred != 0)
unlink(GSSD_CREDENTIAL_CACHE_FILE);
#endif
+ gssd_syscall("");
exit(0);
}