Consolidate definitions of _FORTIFY_SOURCE wrappers for open{,64}{,at}.
authorRoland McGrath <roland@hack.frob.com>
Fri, 3 May 2013 23:33:26 +0000 (16:33 -0700)
committerRoland McGrath <roland@hack.frob.com>
Fri, 3 May 2013 23:33:26 +0000 (16:33 -0700)
16 files changed:
ChangeLog
io/Makefile
io/open.c
io/open64.c
io/open64_2.c [moved from sysdeps/unix/sysv/linux/open64_2.c with 87% similarity]
io/open_2.c [moved from sysdeps/unix/sysv/linux/open_2.c with 87% similarity]
io/openat.c
io/openat64.c
io/openat64_2.c [new file with mode: 0644]
io/openat_2.c [new file with mode: 0644]
sysdeps/mach/hurd/open.c
sysdeps/mach/hurd/openat.c
sysdeps/unix/sysv/linux/Makefile
sysdeps/unix/sysv/linux/openat.c
sysdeps/unix/sysv/linux/openat64.c
sysdeps/unix/sysv/linux/wordsize-64/openat.c

index 9d0eeb76f3cee4fca9b43a20f15735543b5434da..fac3208a183dba9678e43c0cf0a6c716456f1beb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,24 @@
 2013-05-03  Roland McGrath  <roland@hack.frob.com>
 
+       * io/open.c (__open_2): Moved to ...
+       * io/open_2.c: ... this new file.
+       * io/open64.c (__open64_2): Moved to ...
+       * io/open64_2.c: ... this new file.
+       * io/openat.c (__openat_2): Moved to ...
+       * io/openat_2.c: ... this new file.
+       * io/openat64.c (__openat64_2): Moved to ...
+       * io/openat64_2.c: ... this new file.
+       * io/Makefile (routines): Add them.
+       * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove them.
+       * sysdeps/unix/sysv/linux/open_2.c: File removed.
+       * sysdeps/unix/sysv/linux/open64_2.c: File removed.
+       * sysdeps/unix/sysv/linux/openat.c (__OPENAT_2): Removed.
+       * sysdeps/unix/sysv/linux/openat64.c (__OPENAT_2): Removed.
+       * sysdeps/unix/sysv/linux/wordsize-64/openat.c (__openat_2): Removed.
+       (__openat64): Add hidden_ver.
+       * sysdeps/mach/hurd/open.c (__open_2, __open64_2): Removed.
+       * sysdeps/mach/hurd/openat.c (__openat_2): Removed.
+
        * elf/dl-sysdep.c (_dl_sysdep_start) [NEED_DL_SYSINFO]:
        Separately conditionalize setting of GLRO(dl_sysinfo) so
        that the GLRO(dl_sysinfo_dso) test is under [NEED_DL_SYSINFO_DSO]
index 86453d45bc3a4353dbbe5d858256f9aa95b98780..a7a8044a8817e0d357e48c440785f79197259e28 100644 (file)
@@ -36,10 +36,10 @@ routines :=                                                         \
        statvfs fstatvfs statvfs64 fstatvfs64                           \
        umask chmod fchmod lchmod fchmodat                              \
        mkdir mkdirat                                                   \
-       open open64 openat openat64 close                               \
+       open open_2 open64 open64_2 openat openat_2 openat64 openat64_2 \
        read write lseek lseek64 access euidaccess faccessat            \
        fcntl flock lockf lockf64                                       \
-       dup dup2 dup3 pipe pipe2                                        \
+       close dup dup2 dup3 pipe pipe2                                  \
        creat creat64                                                   \
        chdir fchdir                                                    \
        getcwd getwd getdirname                                         \
index 89e8a78b680379b0484f4476bcffc5743cb19db5..b01ba6eac5ab651fd7ae31871e8fd046f424f771 100644 (file)
--- a/io/open.c
+++ b/io/open.c
@@ -22,7 +22,6 @@
 #include <stddef.h>
 #include <stdio.h>
 
-extern char **__libc_argv attribute_hidden;
 
 /* Open FILE with access OFLAG.  If OFLAG includes O_CREAT,
    a third argument is the file protection.  */
@@ -57,15 +56,6 @@ weak_alias (__libc_open, open)
 
 stub_warning (open)
 
-
-int
-__open_2 (file, oflag)
-     const char *file;
-     int oflag;
-{
-  if (oflag & O_CREAT)
-    __fortify_fail ("invalid open call: O_CREAT without mode");
-
-  return __open (file, oflag);
-}
+/* __open_2 is a generic wrapper that calls __open.
+   So give a stub warning for that symbol too.  */
 stub_warning (__open_2)
index 40d2bca20060ef11daab23fa2bd273e6d19f6331..818d3819f8c4942a2ee8c927e832899fcef53a98 100644 (file)
@@ -53,15 +53,6 @@ weak_alias (__libc_open64, open64)
 
 stub_warning (open64)
 
-
-int
-__open64_2 (file, oflag)
-     const char *file;
-     int oflag;
-{
-  if (oflag & O_CREAT)
-    __fortify_fail ("invalid open64 call: O_CREAT without mode");
-
-  return __open64 (file, oflag);
-}
+/* __open64_2 is a generic wrapper that calls __open64.
+   So give a stub warning for that symbol too.  */
 stub_warning (__open64_2)
similarity index 87%
rename from sysdeps/unix/sysv/linux/open64_2.c
rename to io/open64_2.c
index bff2222716645266c5b6b06e9330174fec1abae9..c9a83f9ff24140735691358bc3005d0c1f415ad9 100644 (file)
@@ -1,4 +1,5 @@
-/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
+/* _FORTIFY_SOURCE wrapper for open64.
+   Copyright (C) 2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
 #include <fcntl.h>
 #include <stdio.h>
 
-
 int
-__open64_2 (file, oflag)
-     const char *file;
-     int oflag;
+__open64_2 (const char *file, int oflag)
 {
   if (oflag & O_CREAT)
     __fortify_fail ("invalid open64 call: O_CREAT without mode");
similarity index 87%
rename from sysdeps/unix/sysv/linux/open_2.c
rename to io/open_2.c
index 57261577034358c53a72cc45b45b528522c0df2f..3b9fe28670ccde6289a50ab62eae51229e2419db 100644 (file)
@@ -1,4 +1,5 @@
-/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
+/* _FORTIFY_SOURCE wrapper for open.
+   Copyright (C) 2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
 #include <fcntl.h>
 #include <stdio.h>
 
-
 int
-__open_2 (file, oflag)
-     const char *file;
-     int oflag;
+__open_2 (const char *file, int oflag)
 {
   if (oflag & O_CREAT)
     __fortify_fail ("invalid open call: O_CREAT without mode");
index 16b11916bd0a1dd0c59b776ce9126d5c18361efb..3722c58236acfea5db9c4166fc5b66cdd35b0276 100644 (file)
@@ -75,16 +75,6 @@ libc_hidden_def (__openat)
 weak_alias (__openat, openat)
 stub_warning (openat)
 
-
-int
-__openat_2 (fd, file, oflag)
-     int fd;
-     const char *file;
-     int oflag;
-{
-  if (oflag & O_CREAT)
-    __fortify_fail ("invalid openat call: O_CREAT without mode");
-
-  return __openat (fd, file, oflag);
-}
+/* __openat_2 is a generic wrapper that calls __openat.
+   So give a stub warning for that symbol too.  */
 stub_warning (__openat_2)
index fabfa5d38049baba46dee2195fcc061cf1d3fb34..506da3cf0755133ecc77d6b9a60bfb96b2c1a387 100644 (file)
@@ -68,16 +68,6 @@ libc_hidden_def (__openat64)
 weak_alias (__openat64, openat64)
 stub_warning (openat64)
 
-
-int
-__openat64_2 (fd, file, oflag)
-     int fd;
-     const char *file;
-     int oflag;
-{
-  if (oflag & O_CREAT)
-    __fortify_fail ("invalid openat64 call: O_CREAT without mode");
-
-  return __openat64 (fd, file, oflag);
-}
+/* __openat64_2 is a generic wrapper that calls __openat64.
+   So give a stub warning for that symbol too.  */
 stub_warning (__openat_2)
diff --git a/io/openat64_2.c b/io/openat64_2.c
new file mode 100644 (file)
index 0000000..e69fce4
--- /dev/null
@@ -0,0 +1,29 @@
+/* _FORTIFY_SOURCE wrapper for openat64.
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fcntl.h>
+#include <stdio.h>
+
+int
+__openat64_2 (int fd, const char *file, int oflag)
+{
+  if (oflag & O_CREAT)
+    __fortify_fail ("invalid openat64 call: O_CREAT without mode");
+
+  return __openat64 (fd, file, oflag);
+}
diff --git a/io/openat_2.c b/io/openat_2.c
new file mode 100644 (file)
index 0000000..b423f1d
--- /dev/null
@@ -0,0 +1,29 @@
+/* _FORTIFY_SOURCE wrapper for openat.
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fcntl.h>
+#include <stdio.h>
+
+int
+__openat_2 (int fd, const char *file, int oflag)
+{
+  if (oflag & O_CREAT)
+    __fortify_fail ("invalid openat call: O_CREAT without mode");
+
+  return __openat (fd, file, oflag);
+}
index 2ba2b5d6e9183e9bb4ccad6c3fb66458206ca174..49dd287c00824434bab52135b8701101e02b05cb 100644 (file)
@@ -52,20 +52,9 @@ weak_alias (__libc_open, __open)
 libc_hidden_weak (__open)
 weak_alias (__libc_open, open)
 
-int
-__open_2 (file, oflag)
-     const char *file;
-     int oflag;
-{
-  if (oflag & O_CREAT)
-    __fortify_fail ("invalid open call: O_CREAT without mode");
-
-  return __open (file, oflag);
-}
 
 /* open64 is just the same as open for us.  */
 weak_alias (__libc_open, __libc_open64)
 weak_alias (__libc_open, __open64)
 libc_hidden_weak (_open64)
 weak_alias (__libc_open, open64)
-strong_alias (__open_2, __open64_2)
index 9eb163f84a38a6475a1688a6a3f84719334e88dd..e568acc87524c5a7e83a3653fba512c6632a98c9 100644 (file)
@@ -56,20 +56,7 @@ __openat (fd, file, oflag)
 libc_hidden_def (__openat)
 weak_alias (__openat, openat)
 
-int
-__openat_2 (fd, file, oflag)
-     int fd;
-     const char *file;
-     int oflag;
-{
-  if (oflag & O_CREAT)
-    __fortify_fail ("invalid openat call: O_CREAT without mode");
-
-  return __openat (fd, file, oflag);
-}
-
 /* openat64 is just the same as openat for us.  */
 weak_alias (__openat, __openat64)
 libc_hidden_weak (__openat64)
 weak_alias (__openat, openat64)
-strong_alias (__openat_2, __openat64_2)
index f82c94982e108b903c5fb1b2352b9c1006ade471..f580635c844851e5e3386d30d389b37b1924263a 100644 (file)
@@ -152,7 +152,7 @@ endif
 
 ifeq ($(subdir),io)
 sysdep_routines += xstatconv internal_statvfs internal_statvfs64 \
-                  sync_file_range open_2 open64_2 fallocate fallocate64
+                  sync_file_range fallocate fallocate64
 sysdep_headers += bits/fcntl-linux.h
 endif
 
index d2ef4297368fa3fb8fd87826157af28b863fa16b..6e838dfd0c358ea1192528ba7ff0ec4a891f2f00 100644 (file)
@@ -29,7 +29,6 @@
 
 #ifndef OPENAT
 # define OPENAT openat
-# define __OPENAT_2 __openat_2
 
 # ifndef __ASSUME_ATFCTS
 /* Set errno after a failed call.  If BUF is not null,
@@ -179,18 +178,3 @@ __OPENAT (fd, file, oflag)
 }
 libc_hidden_def (__OPENAT)
 weak_alias (__OPENAT, OPENAT)
-
-
-int
-__OPENAT_2 (fd, file, oflag)
-     int fd;
-     const char *file;
-     int oflag;
-{
-  if (oflag & O_CREAT)
-#define MSG(s) MSG2 (s)
-#define MSG2(s) "invalid " #s " call: O_CREAT without mode"
-    __fortify_fail (MSG (OPENAT));
-
-  return __OPENAT (fd, file, oflag);
-}
index 013a13effa0b98b212a2c12645ba01e664ccfe54..9e7a2b3737a8833069770580068cd5c7e18801f4 100644 (file)
@@ -1,5 +1,4 @@
 #define OPENAT openat64
-#define __OPENAT_2 __openat64_2
 #define MORE_OFLAGS O_LARGEFILE
 
 #include "openat.c"
index 4921fca335501a8003d9ba05948844c13e15d4af..12e027158c3b43b620ee5f434d2da19cdbfe4919 100644 (file)
@@ -1,16 +1,14 @@
 #define __openat64 __rename___openat64
-#define __openat64_2 __rename___openat64_2
 #define __openat64_nocancel __rename___openat64_nocancel
 #define openat64 __rename_openat64
 
 #include "../openat.c"
 
 #undef __openat64
-#undef __openat64_2
 #undef __openat64_nocancel
 #undef openat64
 
-weak_alias (__openat, __openat64)
-weak_alias (__openat_2, __openat64_2)
-weak_alias (__openat_nocancel, __openat64_nocancel)
+strong_alias (__openat, __openat64)
+hidden_ver (__openat, __openat64)
+strong_alias (__openat_nocancel, __openat64_nocancel)
 weak_alias (openat, openat64)