]> git.ipfire.org Git - thirdparty/gnulib.git/commitdiff
renameat2: port better to older Solaris
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 30 Jul 2017 17:53:32 +0000 (10:53 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 30 Jul 2017 18:08:43 +0000 (11:08 -0700)
* lib/renameat2.c (renameat2): Set ret_val properly on old Solaris.
Add goto to use a label, to silence picky compilers.

ChangeLog
lib/renameat2.c

index 5eee4aea31c7b536f0793f43426e3b64fbd11040..ce7c46bd6d17ad3a94c63e48a5bb771b85785928 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2017-07-30  Paul Eggert  <eggert@cs.ucla.edu>
 
+       renameat2: port better to older Solaris
+       * lib/renameat2.c (renameat2): Set ret_val properly on old Solaris.
+       Add goto to use a label, to silence picky compilers.
+
        fts-tests: port to gcc -Wwrite-strings
        * tests/test-fts.c (base, base_d): New static vars.
        (argv, remove_tree, main): Use them.
index e223653dd8b3cfd2fb99b2018bb6223b5f23f2d2..4f9e3d11d2950e8b94ffbce72bab6acdcab07eb0 100644 (file)
@@ -147,6 +147,7 @@ renameat2 (int fd1, char const *src, int fd2, char const *dst,
   /* See the lengthy comment in rename.c why Solaris 9 is forced to
      GNU behavior, while Solaris 10 is left with POSIX behavior,
      regarding symlinks with trailing slash.  */
+  ret_val = -1;
   if (src_slash)
     {
       src_temp = strdup (src);
@@ -194,6 +195,7 @@ renameat2 (int fd1, char const *src, int fd2, char const *dst,
 
   ret_val = renameat (fd1, src_temp, fd2, dst_temp);
   rename_errno = errno;
+  goto out;
  out:
   if (src_temp != src)
     free (src_temp);