diff options
author | Jakub Jelinek <jakub@redhat.com> | 2004-10-01 21:37:29 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2004-10-01 21:37:29 +0000 |
commit | 6d96590587deec027c04fe576f11cff0f445eb32 (patch) | |
tree | a0b964a672b5e970d88a8f030da837ce14885aae /posix | |
parent | b7a09b9201b09b722209cb430813709505927be0 (diff) | |
download | glibc-6d96590587deec027c04fe576f11cff0f445eb32.tar.gz |
Updated to fedora-glibc-20041001T2134cvs/fedora-glibc-2_3_3-63
Diffstat (limited to 'posix')
-rw-r--r-- | posix/bug-glob1.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/posix/bug-glob1.c b/posix/bug-glob1.c index 4f7e981c75..05c2da7584 100644 --- a/posix/bug-glob1.c +++ b/posix/bug-glob1.c @@ -26,15 +26,21 @@ prepare (int argc, char *argv[]) size_t len = strlen (argv[1]); static const char ext[] = "globXXXXXX"; - fname = malloc (len + 1 + sizeof (ext)); + fname = malloc (len + sizeof (ext)); if (fname == NULL) error (EXIT_FAILURE, errno, "cannot create temp file"); - strcpy (stpcpy (stpcpy (fname, argv[1]), "/"), ext); + again: + strcpy (stpcpy (fname, argv[1]), ext); fname = mktemp (fname); if (fname == NULL || *fname == '\0') error (EXIT_FAILURE, errno, "cannot create temp file name"); if (symlink ("bug-glob1-does-not-exist", fname) != 0) - error (EXIT_FAILURE, errno, "cannot create symlink"); + { + if (errno == EEXIST) + goto again; + + error (EXIT_FAILURE, errno, "cannot create symlink"); + } add_temp_file (fname); } |