]> sourceware.org Git - glibc.git/commitdiff
io: Fix destructive nature of tst-fchmod-errors
authorFlorian Weimer <fweimer@redhat.com>
Fri, 30 Aug 2024 20:07:12 +0000 (22:07 +0200)
committerFlorian Weimer <fweimer@redhat.com>
Fri, 30 Aug 2024 20:30:05 +0000 (22:30 +0200)
We must not change the permissions of /dev/null if running
as root.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
io/tst-fchmod-errors.c

index ee15300fc3edf6f0f92501af6e1dc136d5fd8c16..bf2a4c568e33aeaae7157c6ab20b6118bacb7df0 100644 (file)
 
 #include <errno.h>
 #include <fcntl.h>
+#include <stdio.h>
 #include <support/check.h>
 #include <support/xunistd.h>
+#include <unistd.h>
 
 static int
 do_test (void)
@@ -27,9 +29,14 @@ do_test (void)
   {
     /* Permissions on /dev/null (the opened descriptor) cannot be changed.  */
     int fd = xopen ("/dev/null", O_RDWR, 0);
-    errno = 0;
-    TEST_COMPARE (fchmod (fd, 0), -1);
-    TEST_COMPARE (errno, EPERM);
+    if (getuid () == 0)
+      puts ("info: /dev/null fchmod test skipped because of root privileges");
+    else
+      {
+        errno = 0;
+        TEST_COMPARE (fchmod (fd, 0), -1);
+        TEST_COMPARE (errno, EPERM);
+      }
     xclose (fd);
 
     /* Now testing an invalid file descriptor.   */
This page took 0.038973 seconds and 5 git commands to generate.