Subject: bug in mkstemp
From: [email-masked] (Rob Mayoff)

9 Apr 1998 04:05:09 -0700
Message-ID: <[email-masked]>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
To: [email-masked]

In this program, the second call to mkstemp will fail:

#include <stdio.h>
#include <sys/param.h>

main()
{
  char path[MAXPATHLEN];
        int fd, rc;

        sprintf(path, "/tmp/test.XXXXXX");
        fd = mkstemp(path);
        if (fd < 0) { perror("mkstemp 1"); exit(1); }
        rc = unlink(path);
        if (rc < 0) { perror("unlink"); exit(1); }
        sprintf(path, "/tmp/test.XXXXXX");
        fd = mkstemp(path);
        if (fd < 0) { perror("mkstemp 2"); exit(1); }
        rc = unlink(path);
        if (rc < 0) { perror("unlink"); exit(1); }

        exit(0);
}

The fix should be simply to treat EACCES just like EEXIST in mkstemp.

-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".