summaryrefslogtreecommitdiff
path: root/gss-serv-krb5.c
diff options
context:
space:
mode:
Diffstat (limited to 'gss-serv-krb5.c')
-rw-r--r--gss-serv-krb5.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/gss-serv-krb5.c b/gss-serv-krb5.c
index 4e3598ead..91d87f798 100644
--- a/gss-serv-krb5.c
+++ b/gss-serv-krb5.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: gss-serv-krb5.c,v 1.2 2003/11/21 11:57:03 djm Exp $ */ 1/* $OpenBSD: gss-serv-krb5.c,v 1.3 2004/07/21 10:36:23 djm Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. 4 * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved.
@@ -53,7 +53,7 @@ static krb5_context krb_context = NULL;
53/* Initialise the krb5 library, for the stuff that GSSAPI won't do */ 53/* Initialise the krb5 library, for the stuff that GSSAPI won't do */
54 54
55static int 55static int
56ssh_gssapi_krb5_init() 56ssh_gssapi_krb5_init(void)
57{ 57{
58 krb5_error_code problem; 58 krb5_error_code problem;
59 59
@@ -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;