about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2008-03-08 05:21:41 +0000
committerUlrich Drepper <drepper@redhat.com>2008-03-08 05:21:41 +0000
commitc71665ad060cd30c99399d7a4fa47566eaf8b961 (patch)
tree8a4519cb1d91bb2abcf273e8a1cb5452ec5f4d2c
parent72f1012788c07837e841300024ab554b56aa6816 (diff)
downloadglibc-c71665ad060cd30c99399d7a4fa47566eaf8b961.tar.gz
glibc-c71665ad060cd30c99399d7a4fa47566eaf8b961.tar.xz
glibc-c71665ad060cd30c99399d7a4fa47566eaf8b961.zip
* io/tst-fchownat.c: Correctly handle _POSIX_CHOWN_RESTRICTED
	defined to zero.
-rw-r--r--ChangeLog2
-rw-r--r--io/tst-fchownat.c15
2 files changed, 11 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 10cb7876f9..ea4e62b1e7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,8 @@
 	Implement __statfs_chown_restricted.
 	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Change
 	_POSIX_CHOWN_RESTRICTED value to zero.
+	* io/tst-fchownat.c: Correctly handle _POSIX_CHOWN_RESTRICTED
+	defined to zero.
 
 	* sysdeps/x86_64/rtld-memset.c: New file.
 
diff --git a/io/tst-fchownat.c b/io/tst-fchownat.c
index fd32ac9e6b..da8fd3b023 100644
--- a/io/tst-fchownat.c
+++ b/io/tst-fchownat.c
@@ -19,14 +19,17 @@ static int dir_fd;
 static void
 prepare (void)
 {
-#if _POSIX_CHOWN_RESTRICTED > 0
-  uid_t uid = getuid ();
-  if (uid != 0)
+#if _POSIX_CHOWN_RESTRICTED == 0
+  if (pathconf (test_dir, _PC_CHOWN_RESTRICTED) != 0)
+#endif
     {
-      puts ("need root privileges");
-      exit (0);
+      uid_t uid = getuid ();
+      if (uid != 0)
+	{
+	  puts ("need root privileges");
+	  exit (0);
+	}
     }
-#endif
 
   size_t test_dir_len = strlen (test_dir);
   static const char dir_name[] = "/tst-fchownat.XXXXXX";