| commit cc0e6ed81fa3ab0eeecfc576098b4522f0323c4b |
| Author: Roland McGrath <roland@hack.frob.com> |
| Date: Fri May 3 16:33:26 2013 -0700 |
| |
| Consolidate definitions of _FORTIFY_SOURCE wrappers for open{,64}{,at}. |
| |
| |
| |
| |
| |
| @@ -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 \ |
| |
| |
| |
| |
| @@ -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) |
| |
| |
| |
| |
| @@ -54,15 +54,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) |
| |
| |
| |
| |
| @@ -0,0 +1,29 @@ |
| +/* _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 |
| + 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 |
| +__open64_2 (const char *file, int oflag) |
| +{ |
| + if (oflag & O_CREAT) |
| + __fortify_fail ("invalid open64 call: O_CREAT without mode"); |
| + |
| + return __open64 (file, oflag); |
| +} |
| |
| |
| |
| |
| @@ -0,0 +1,29 @@ |
| +/* _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 |
| + 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 |
| +__open_2 (const char *file, int oflag) |
| +{ |
| + if (oflag & O_CREAT) |
| + __fortify_fail ("invalid open call: O_CREAT without mode"); |
| + |
| + return __open (file, oflag); |
| +} |
| |
| |
| |
| |
| @@ -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) |
| |
| |
| |
| |
| @@ -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) |
| |
| |
| |
| |
| @@ -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); |
| +} |
| |
| |
| |
| |
| @@ -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); |
| +} |
| |
| |
| |
| |
| @@ -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) |
| |
| |
| |
| |
| @@ -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) |
| |
| |
| |
| |
| @@ -158,7 +158,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 |
| |
| |
| |
| |
| |
| @@ -1,31 +0,0 @@ |
| -/* Copyright (C) 2007 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 |
| -__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); |
| -} |
| |
| |
| |
| |
| @@ -1,31 +0,0 @@ |
| -/* Copyright (C) 2007 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 |
| -__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); |
| -} |
| |
| |
| |
| |
| @@ -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); |
| -} |
| |
| |
| |
| |
| @@ -1,5 +1,4 @@ |
| #define OPENAT openat64 |
| -#define __OPENAT_2 __openat64_2 |
| #define MORE_OFLAGS O_LARGEFILE |
| |
| #include "openat.c" |
| |
| |
| |
| |
| @@ -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) |