Update.
authorUlrich Drepper <drepper@redhat.com>
Fri, 1 Oct 2004 15:44:06 +0000 (15:44 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 1 Oct 2004 15:44:06 +0000 (15:44 +0000)
2004-10-01  Ulrich Drepper  <drepper@redhat.com>

* posix/bug-glob1.c (prepare): Fix creation of symlink.

ChangeLog
posix/bug-glob1.c

index 3966268..8a4067d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2004-10-01  Ulrich Drepper  <drepper@redhat.com>
+
+       * posix/bug-glob1.c (prepare): Fix creation of symlink.
+
 2004-09-30  Ulrich Drepper  <drepper@redhat.com>
 
        * posix/Makefile: Add rules to build and run bug-glob1.
index 4f7e981..05c2da7 100644 (file)
@@ -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);
 }