summaryrefslogtreecommitdiff
path: root/auth-krb5.c
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2004-08-14 23:55:37 +1000
committerDarren Tucker <dtucker@zip.com.au>2004-08-14 23:55:37 +1000
commit066969339dcd0352965de0ab1b5f693cf2a7fee8 (patch)
treedf36cda53b0cb0050084516295cd1529e48f01ef /auth-krb5.c
parenta763105c0f6e4d58f2e477597d1cf5ca5317b1a1 (diff)
- (dtucker) [auth-krb5.c gss-serv-krb5.c openbsd-compat/xmmap.c]
Explicitly set umask for mkstemp; ok djm@
Diffstat (limited to 'auth-krb5.c')
-rw-r--r--auth-krb5.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/auth-krb5.c b/auth-krb5.c
index a728ebac1..a324ff15c 100644
--- a/auth-krb5.c
+++ b/auth-krb5.c
@@ -69,6 +69,7 @@ auth_krb5_password(Authctxt *authctxt, const char *password)
69 krb5_principal server; 69 krb5_principal server;
70 char ccname[40]; 70 char ccname[40];
71 int tmpfd; 71 int tmpfd;
72 mode_t old_umask;
72#endif 73#endif
73 krb5_error_code problem; 74 krb5_error_code problem;
74 krb5_ccache ccache = NULL; 75 krb5_ccache ccache = NULL;
@@ -147,7 +148,10 @@ auth_krb5_password(Authctxt *authctxt, const char *password)
147 148
148 snprintf(ccname,sizeof(ccname),"FILE:/tmp/krb5cc_%d_XXXXXX",geteuid()); 149 snprintf(ccname,sizeof(ccname),"FILE:/tmp/krb5cc_%d_XXXXXX",geteuid());
149 150
150 if ((tmpfd = mkstemp(ccname+strlen("FILE:")))==-1) { 151 old_umask = umask(0177);
152 tmpfd = mkstemp(ccname + strlen("FILE:"));
153 umask(old_umask);
154 if (tmpfd == -1) {
151 logit("mkstemp(): %.100s", strerror(errno)); 155 logit("mkstemp(): %.100s", strerror(errno));
152 problem = errno; 156 problem = errno;
153 goto out; 157 goto out;