diff options
Diffstat (limited to 'gss-serv-krb5.c')
-rw-r--r-- | gss-serv-krb5.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gss-serv-krb5.c b/gss-serv-krb5.c index 6bd5830fb..91d87f798 100644 --- a/gss-serv-krb5.c +++ b/gss-serv-krb5.c | |||
@@ -134,11 +134,15 @@ ssh_gssapi_krb5_storecreds(ssh_gssapi_client *client) | |||
134 | { | 134 | { |
135 | int tmpfd; | 135 | int tmpfd; |
136 | char ccname[40]; | 136 | char ccname[40]; |
137 | mode_t old_umask; | ||
137 | 138 | ||
138 | snprintf(ccname, sizeof(ccname), | 139 | snprintf(ccname, sizeof(ccname), |
139 | "FILE:/tmp/krb5cc_%d_XXXXXX", geteuid()); | 140 | "FILE:/tmp/krb5cc_%d_XXXXXX", geteuid()); |
140 | 141 | ||
141 | if ((tmpfd = mkstemp(ccname + strlen("FILE:"))) == -1) { | 142 | old_umask = umask(0177); |
143 | tmpfd = mkstemp(ccname + strlen("FILE:")); | ||
144 | umask(old_umask); | ||
145 | if (tmpfd == -1) { | ||
142 | logit("mkstemp(): %.100s", strerror(errno)); | 146 | logit("mkstemp(): %.100s", strerror(errno)); |
143 | problem = errno; | 147 | problem = errno; |
144 | return; | 148 | return; |