changeset 39898:6b8c2cbdd8b0

renameatu: prefer renameat2 to syscall * lib/renameatu.c (renameatu) [HAVE_RENAMEAT2]: Use renameat2 instead of syscall (Bug#32796). * m4/renameat.m4 (gl_FUNC_RENAMEAT): Check for renameat2.
author Andreas Henriksson <andreas@fatal.se>
date Sun, 07 Oct 2018 15:01:07 -0700
parents ac60f423d63b
children f0d0013f13a7
files ChangeLog lib/renameatu.c m4/renameat.m4
diffstat 3 files changed, 12 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sun Oct 07 18:20:44 2018 +0200
+++ b/ChangeLog	Sun Oct 07 15:01:07 2018 -0700
@@ -1,3 +1,10 @@
+2018-10-07  Andreas Henriksson  <andreas@fatal.se>  (tiny change)
+
+	renameatu: prefer renameat2 to syscall
+	* lib/renameatu.c (renameatu) [HAVE_RENAMEAT2]:
+	Use renameat2 instead of syscall (Bug#32796).
+	* m4/renameat.m4 (gl_FUNC_RENAMEAT): Check for renameat2.
+
 2018-10-07  Benno Schulenberg  <bensberg@telfort.nl>
 
 	bootstrap, gnulib-tool: use https instead of insecure rsync
--- a/lib/renameatu.c	Sun Oct 07 18:20:44 2018 +0200
+++ b/lib/renameatu.c	Sun Oct 07 15:01:07 2018 -0700
@@ -80,7 +80,10 @@
   int ret_val = -1;
   int err = EINVAL;
 
-#ifdef SYS_renameat2
+#ifdef HAVE_RENAMEAT2
+  ret_val = renameat2 (fd1, src, fd2, dst, flags);
+  err = errno;
+#elif defined SYS_renameat2
   ret_val = syscall (SYS_renameat2, fd1, src, fd2, dst, flags);
   err = errno;
 #elif defined RENAME_EXCL
--- a/m4/renameat.m4	Sun Oct 07 18:20:44 2018 +0200
+++ b/m4/renameat.m4	Sun Oct 07 15:01:07 2018 -0700
@@ -15,7 +15,7 @@
   AC_REQUIRE([gl_STDIO_H_DEFAULTS])
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
   AC_CHECK_HEADERS([linux/fs.h])
-  AC_CHECK_FUNCS_ONCE([renameat])
+  AC_CHECK_FUNCS_ONCE([renameat renameat2])
   if test $ac_cv_func_renameat = no; then
     HAVE_RENAMEAT=0
   elif test $REPLACE_RENAME = 1; then