]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Reject invalid definitions of _POSIX_CHOWN_RESTRICTED, _POSIX_NO_TRUNC, _POSIX_VDISABLE
authorAndreas Schwab <schwab@linux-m68k.org>
Sun, 28 Jan 2018 17:48:04 +0000 (18:48 +0100)
committerAndreas Schwab <schwab@linux-m68k.org>
Mon, 29 Jan 2018 21:21:21 +0000 (22:21 +0100)
POSIX requires that the constants _POSIX_CHOWN_RESTRICTED,
_POSIX_NO_TRUNC, and _POSIX_VDISABLE are always defined to a value other
than -1.

ChangeLog
sysdeps/posix/fpathconf.c
sysdeps/posix/pathconf.c

index 6fefbee51e428459b3b2eb1f39d680defadab06e..07e751e6ed0431753729572a082b441d7c0f6846 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2018-01-29  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * sysdeps/posix/fpathconf.c (__fpathconf): Verify the values of
+       _POSIX_CHOWN_RESTRICTED, _POSIX_NO_TRUNC, _POSIX_VDISABLE.
+       * sysdeps/posix/pathconf.c (__pathconf): Likewise.
+
 2018-01-29  Samuel Thibault  <samuel.thibault@ens-lyon.org>
 
        * mach/Versions: Fix version when __mach_host_self_ was added.
index 80af77e148d6fda5fc7b4969b9f45f1e1e21fa6d..a9d164564e62bda74118763c8aa3baa6fa4e5a84 100644 (file)
@@ -103,25 +103,22 @@ __fpathconf (int fd, int name)
 #endif
 
     case _PC_CHOWN_RESTRICTED:
-#ifdef _POSIX_CHOWN_RESTRICTED
-      return _POSIX_CHOWN_RESTRICTED;
-#else
-      return -1;
+#if _POSIX_CHOWN_RESTRICTED == -1
+# error "Invalid value for _POSIX_CHOWN_RESTRICTED"
 #endif
+      return _POSIX_CHOWN_RESTRICTED;
 
     case _PC_NO_TRUNC:
-#ifdef _POSIX_NO_TRUNC
-      return _POSIX_NO_TRUNC;
-#else
-      return -1;
+#if _POSIX_NO_TRUNC == -1
+# error "Invalid value for _POSIX_NO_TRUNC"
 #endif
+      return _POSIX_NO_TRUNC;
 
     case _PC_VDISABLE:
-#ifdef _POSIX_VDISABLE
-      return _POSIX_VDISABLE;
-#else
-      return -1;
+#if _POSIX_VDISABLE == -1
+# error "Invalid value for _POSIX_VDISABLE"
 #endif
+      return _POSIX_VDISABLE;
 
     case _PC_SYNC_IO:
 #ifdef _POSIX_SYNC_IO
index 2059e55b4fa1012506e920a1a074c6dc273a29f8..0f893ec1ba19a7cd1013c93b4cdd972763b3b437 100644 (file)
@@ -101,25 +101,22 @@ __pathconf (const char *path, int name)
 #endif
 
     case _PC_CHOWN_RESTRICTED:
-#ifdef _POSIX_CHOWN_RESTRICTED
-      return _POSIX_CHOWN_RESTRICTED;
-#else
-      return -1;
+#if _POSIX_CHOWN_RESTRICTED == -1
+# error "Invalid value for _POSIX_CHOWN_RESTRICTED"
 #endif
+      return _POSIX_CHOWN_RESTRICTED;
 
     case _PC_NO_TRUNC:
-#ifdef _POSIX_NO_TRUNC
-      return _POSIX_NO_TRUNC;
-#else
-      return -1;
+#if _POSIX_NO_TRUNC == -1
+# error "Invalid value for _POSIX_NO_TRUNC"
 #endif
+      return _POSIX_NO_TRUNC;
 
     case _PC_VDISABLE:
-#ifdef _POSIX_VDISABLE
-      return _POSIX_VDISABLE;
-#else
-      return -1;
+#if _POSIX_VDISABLE == -1
+# error "Invalid value for _POSIX_VDISABLE"
 #endif
+      return _POSIX_VDISABLE;
 
     case _PC_SYNC_IO:
 #ifdef _POSIX_SYNC_IO