krb5_fcc_generate_new should use mkstemp
authorSam Hartman <hartmans@mit.edu>
Fri, 26 Mar 2004 18:04:41 +0000 (18:04 +0000)
committerSam Hartman <hartmans@mit.edu>
Fri, 26 Mar 2004 18:04:41 +0000 (18:04 +0000)
Change krb5_fcc_generate_new to use mkstemp rather than mktemp.

Ticket: new
Status: open

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16214 dc483132-0cff-0310-8789-dd5450dbe970

src/include/ChangeLog
src/include/configure.in
src/lib/krb5/ccache/ChangeLog
src/lib/krb5/ccache/cc_file.c

index 6b2ba91abd42bc3c510ffd683d560fcf663caf94..25f8eb8c78a61c8089e65e248f011b87690bc334 100644 (file)
@@ -1,3 +1,7 @@
+2004-03-25  Sam Hartman  <hartmans@mit.edu>
+
+       * configure.in: Check for mkstemp
+
 2004-03-08  Ken Raeburn  <raeburn@mit.edu>
 
        * Makefile.in (LOCAL_SUBDIRS): Renamed from MY_SUBDIRS.
index 3aad0dc48b78ac62594e529cb998633d1a54a643..75bf3ea32103d5dbe51b398dd2fb3cdf9e58111a 100644 (file)
@@ -10,6 +10,7 @@ AC_PROG_AWK
 AC_PROG_LEX
 AC_C_CONST
 AC_CHECK_FUNCS(strdup setvbuf inet_ntoa inet_aton seteuid setresuid setreuid setegid setresgid setregid setsid flock fchmod chmod strftime strptime geteuid setenv unsetenv getenv gethostbyname2 getifaddrs)
+AC_CHECK_FUNCS( mkstemp)
 AC_HEADER_STDARG
 AC_CHECK_HEADERS(unistd.h paths.h regex.h regexp.h regexpr.h fcntl.h memory.h ifaddrs.h sys/filio.h)
 dnl
index 631313b290f24b49546f7739cf1eb4e29f738695..282ba0dca3ee30b97c157fa7598dcf80b59f3fc9 100644 (file)
@@ -1,3 +1,7 @@
+2004-03-25  Sam Hartman  <hartmans@mit.edu>
+
+       * cc_file.c (krb5_fcc_generate_new): Use mkstemp not mktemp when possible
+       
 2004-03-18  Jeffrey Altman <jaltman@mit.edu>
 
    * cc_mslsa.c:
index 4fe6221b8ab75b8304b3d0b4853dc63853345849..365e1a6fba5bce0da51f40c5aab90749d5a452f2 100644 (file)
@@ -1991,9 +1991,8 @@ static krb5_error_code KRB5_CALLCONV
 krb5_fcc_generate_new (krb5_context context, krb5_ccache *id)
 {
      krb5_ccache lid;
-#ifndef USE_STDIO
      int ret;
-#else
+#ifdef USE_STDIO
      FILE *f;
 #endif
      krb5_error_code    retcode = 0;
@@ -2009,7 +2008,14 @@ krb5_fcc_generate_new (krb5_context context, krb5_ccache *id)
 
      (void) strcpy(scratch, TKT_ROOT);
      (void) strcat(scratch, "XXXXXX");
+#ifdef HAVE_MKSTEMP
+     ret = mkstemp(scratch);
+     if (ret == -1) {
+        return krb5_fcc_interpret(context, errno);
+     } else close(ret);
+#else /*HAVE_MKSTEMP*/
      mktemp(scratch);
+#endif
 
      lid->data = (krb5_pointer) malloc(sizeof(krb5_fcc_data));
      if (lid->data == NULL) {