------- Comment #1 from jvdelisle at gcc dot gnu dot org 2010-04-22 00:41 ------- This does not look right to me:
static int tempfile (st_parameter_open *opp) { const char *tempdir; char *template; int fd; tempdir = getenv ("GFORTRAN_TMPDIR"); if (tempdir == NULL) tempdir = getenv ("TMP"); if (tempdir == NULL) tempdir = getenv ("TEMP"); if (tempdir == NULL) tempdir = DEFAULT_TEMPDIR; template = get_mem (strlen (tempdir) + 20); sprintf (template, "%s/gfortrantmpXXXXXX", tempdir); #ifdef HAVE_MKSTEMP fd = mkstemp (template); #else /* HAVE_MKSTEMP */ if (mktemp (template)) do #if defined(HAVE_CRLF) && defined(O_BINARY) fd = open (template, O_RDWR | O_CREAT | O_EXCL | O_BINARY, S_IREAD | S_IWRITE); #else fd = open (template, O_RDWR | O_CREAT | O_EXCL, S_IREAD | S_IWRITE); #endif while (!(fd == -1 && errno == EEXIST) && mktemp (template)); else fd = -1; #endif /* HAVE_MKSTEMP */ -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43844