diff options
author | Alexandra Hájková <ahajkova@redhat.com> | 2020-04-27 10:52:38 -0400 |
---|---|---|
committer | Alexandra Hájková <ahajkova@redhat.com> | 2020-09-07 17:36:23 +0200 |
commit | 3a5af0abeb3cc7dc81846e82fe4de84afa5c4551 (patch) | |
tree | d1d0bfeee6c5937d85915d5bed0d2ea766557410 | |
parent | 721a853415e358ba887c9fc693899cb648ca79f3 (diff) | |
download | glibc-sasha/execveat.zip glibc-sasha/execveat.tar.gz glibc-sasha/execveat.tar.bz2 |
Linux: Add execveat system call wrappersasha/execveat
38 files changed, 304 insertions, 3 deletions
diff --git a/posix/Makefile b/posix/Makefile index 605ddba..2e96d7e 100644 --- a/posix/Makefile +++ b/posix/Makefile @@ -65,7 +65,8 @@ routines := \ spawnattr_setsigmask spawnattr_setschedpolicy spawnattr_setschedparam \ posix_madvise \ get_child_max sched_cpucount sched_cpualloc sched_cpufree \ - streams-compat + streams-compat \ + execveat aux := init-posix environ tests := test-errno tstgetopt testfnm runtests runptests \ @@ -102,7 +103,7 @@ tests := test-errno tstgetopt testfnm runtests runptests \ tst-sysconf-empty-chroot tst-glob_symlinks tst-fexecve \ tst-glob-tilde test-ssize-max tst-spawn4 bug-regex37 \ bug-regex38 tst-regcomp-truncated tst-spawn-chdir \ - tst-wordexp-nocmd + tst-wordexp-nocmd tst-execveat tests-internal := bug-regex5 bug-regex20 bug-regex33 \ tst-rfc3484 tst-rfc3484-2 tst-rfc3484-3 \ tst-glob_lstat_compat tst-spawn4-compat diff --git a/posix/Versions b/posix/Versions index 7d06a6d..8a50a2b 100644 --- a/posix/Versions +++ b/posix/Versions @@ -147,6 +147,9 @@ libc { } GLIBC_2.30 { } + GLIBC_2.32 { + execveat; + } GLIBC_PRIVATE { __libc_fork; __libc_pread; __libc_pwrite; __nanosleep_nocancel; __pause_nocancel; diff --git a/posix/execveat.c b/posix/execveat.c new file mode 100644 index 0000000..cab6195 --- /dev/null +++ b/posix/execveat.c @@ -0,0 +1,40 @@ +/* Copyright (C) 1991-2020 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 + <https://www.gnu.org/licenses/>. */ + +#include <errno.h> +#include <stddef.h> +#include <unistd.h> + +/* Replace the current process, executing PATH relative to DIFRD with + * arguments ARGV and environment ENVP. + * ARGV and ENVP are terminated by NULL pointers. */ +int +__execveat (int dirfd, const char *path, char *const argv[], char *const envp[], + int flags) +{ + if (difrd < 0 || path == NULL || argv == NULL || envp == NULL) + { + __set_errno (EINVAL); + return -1; + } + + __set_errno (ENOSYS); + return -1; +} +stub_warning (execveat) + +weak_alias (__execveat, execveat) diff --git a/posix/tst-execveat.c b/posix/tst-execveat.c new file mode 100644 index 0000000..0e0a33d --- /dev/null +++ b/posix/tst-execveat.c @@ -0,0 +1,142 @@ +/* Copyright (C) 2017-2020 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 + <https://www.gnu.org/licenses/>. */ + +#include <fcntl.h> +#include <errno.h> +#include <sys/types.h> +#include <dirent.h> +#include <support/check.h> +#include <support/xdlfcn.h> +#include <support/xstdio.h> +#include <support/xunistd.h> +#include <wait.h> +#include <support/test-driver.h> + +int +call_execveat (int fd, const char *pathname, int flags, int expected_fail, int num) +{ + char *argv[] = { (char *) "sh", (char *) "-c", (char *) "exit 3", NULL }; + char *envp[] = { (char *) "FOO=BAR", NULL }; + pid_t pid; + int status; + + printf("call number: %d\n", num); + + pid = xfork (); + if (pid == 0) + { + + TEST_COMPARE (execveat (fd, "sh", argv, envp, flags), -1); + if (errno == ENOSYS) + FAIL_UNSUPPORTED ("execveat is unimplemented"); + else if (errno == expected_fail) + { + if (test_verbose > 0) + printf ("expected fail: errno %d\n", errno); + _exit(0); + } + else + FAIL_EXIT1 ("execveat failed, errno %d", errno); + } + xwaitpid (pid, &status, 0); + + if (WIFEXITED (status)) + if (expected_fail) + TEST_COMPARE (WEXITSTATUS (status), 0); + else + TEST_COMPARE (WEXITSTATUS (status), 3); + else if (!expected_fail) + FAIL_EXIT1 ("execveat failed"); + return 0; +} + +static int +do_test (void) +{ + DIR *dirp; + int fd; + + dirp = opendir ("/bin"); + if (dirp == NULL) + FAIL_EXIT1 ("failed to open /bin"); + fd = dirfd (dirp); + + /* Call execveat for various fd/pathname combinations */ + + /* fd: valid dir, pathname: relative, flags:: 0 */ + call_execveat (fd, "sh", 0, 0, 1); + /* fd: valid dir, pathname: relative, flags: O_PATH */ + call_execveat (fd, "sh", O_PATH, 0, 2); + /* fd: AT_FDCWD, pathname: relative, flags: 0 + If pathname is relative and dirfd is the special value AT_FDCWD, then + pathname is interpreted relative to the current working directory of + the calling process */ + chdir("/bin"); + call_execveat (AT_FDCWD, "sh", 0, 0, 3); + xclose (fd); + closedir (dirp); + + dirp = opendir ("/usr"); + fd = dirfd (dirp); + chdir ("/etc"); + /* fd: AT_FDCWD, pathname: absolute in different dir, flags: 0 */ + call_execveat (AT_FDCWD, "/bin/sh", 0, 0, 4); + + /* fd: valid dir, pathname: absolute in differen dir, flags: 0 */ + call_execveat (fd, "/bin/sh", 0, 0, 5); + /* fd: valid dir, pathname: absolute, flags: O_PATH */ + call_execveat (fd, "/bin/sh", O_PATH, 0, 6); + xclose (fd); + closedir (dirp); + + fd = xopen ("/bin/sh", 0, 0); + /* fd: regular file, pathname: relative, flags: 0 */ + call_execveat(fd, "sh", 0, ENOTDIR, 7); + /* fd: regular file, pathname: absolute, flags: 0 */ + call_execveat (fd, "/bin/sh", 0, 0, 8); + xclose (fd); + + fd = xopen ("/bin/sh", O_PATH, 0); + /* fd: O_PATH of regular file, pathname: empty, flags: 0 */ + call_execveat (fd, "", 0, ENOTDIR, 10); + /* fd: O_PATH of regular file, pathname: empty, flags: AT_EMPTY_PATH */ + call_execveat (fd, "", AT_EMPTY_PATH, 0, 11); // fails with ENOTDIR (20) + /* fd: O_PATH of regular file, pathname: empty, + flags: AT_EMPTY_PATH AT_SYMLINK_NOFOLLOW */ + // call_execveat (fd, "", AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW, NULL, 0, 12); //fails with ENOTDIR + xclose (fd); + + fd = xopen ("/bin/sh", O_NOFOLLOW | O_PATH, 0); + /* fd: O_PATH of symbolic link, pathname: empty, flags: */ +// call_execveat(fd, "", 0, 1, 13); //fails with errno ENOTDIR + /* fd: O_PATH of symbolic link, pathname: empty, flags: */ +// call_execveat (fd, "", AT_EMPTY_PATH, 0, 14); //fails with errno ENOTDIR + /* fd: O_PATH of symbolic link, pathname: empty, + flags: AT_EMPTY_PATH AT_SYMLINK_NOFOLLOW */ + call_execveat (fd, "", AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW, ENOTDIR, 15); + xclose (fd); + + /* Call execveat with closed fd, we expect this to fail with EBADF */ + call_execveat (fd, "sh", 0, EBADF, 16); + /* Call execveat with closed fd, we expect this to pass because the pathname is + absolute */ + call_execveat (fd, "/bin/sh", 0, 0, 17); + + return 0; +} + +#include <support/test-driver.c> diff --git a/posix/unistd.h b/posix/unistd.h index 32b8161..b1117f2 100644 --- a/posix/unistd.h +++ b/posix/unistd.h @@ -295,6 +295,11 @@ extern int euidaccess (const char *__name, int __type) /* An alias for `euidaccess', used by some other systems. */ extern int eaccess (const char *__name, int __type) __THROW __nonnull ((1)); + +/* Execute program relative to a directory file descriptor. */ +extern int execveat (int __fd, const char *__path, char *const __argv[], + char *const __envp[], int __flags) + __THROW __nonnull ((2, 3)); #endif #ifdef __USE_ATFILE diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index 7253721..3ef54af 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -2181,6 +2181,7 @@ GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F GLIBC_2.30 twalk_r F GLIBC_2.32 __libc_single_threaded D 0x1 +GLIBC_2.32 execveat F GLIBC_2.32 mach_print F GLIBC_2.32 mremap F GLIBC_2.32 sigabbrev_np F diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index 5079f33..889c8e9 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -233,7 +233,7 @@ endif ifeq ($(subdir),posix) sysdep_headers += bits/initspin.h -sysdep_routines += sched_getcpu oldglob getcpu +sysdep_routines += sched_getcpu oldglob getcpu execveat tests += tst-affinity tst-affinity-pid diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 6cd6198..1c3e937 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2155,6 +2155,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 8edb5de..f7c8c9f 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2237,6 +2237,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist index 7f4a146d2..e0e2a9f 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist @@ -139,6 +139,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist index a83cc81..95785be 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist @@ -136,6 +136,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist index 32887b1..69db05e 100644 --- a/sysdeps/unix/sysv/linux/csky/libc.abilist +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist @@ -2099,6 +2099,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/execveat.c b/sysdeps/unix/sysv/linux/execveat.c new file mode 100644 index 0000000..62f3f05 --- /dev/null +++ b/sysdeps/unix/sysv/linux/execveat.c @@ -0,0 +1,79 @@ +/* Copyright (C) 1994-2020 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 + <https://www.gnu.org/licenses/>. */ + +#include <errno.h> +#include <stddef.h> +#include <stdio.h> +#include <unistd.h> +#include <fcntl.h> +#include <sys/stat.h> + +#include <sysdep.h> +#include <sys/syscall.h> +#include <kernel-features.h> +#include <fd_to_filename.h> +#include <not-cancel.h> + +/* Execute the file FD refers to, overlaying the running program image. + ARGV and ENVP are passed to the new program, as for `execve'. */ +int +execveat (int dirfd, const char *path, char *const argv[], char *const envp[], + int flags) +{ + /* Avoid implicit array coercion in syscall macros. */ + INLINE_SYSCALL_CALL (execveat, dirfd, path, &argv[0], &envp[0], flags); +#ifndef __ASSUME_EXECVEAT + if (errno != ENOSYS) + return -1; + + if ((flags & ~(AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW)) != 0) + return EINVAL; + + int fd; + if (path[0] == '\0' && (flags & AT_EMPTY_PATH) && dirfd >= 0) + fd = dirfd; + else + { + int oflags = O_CLOEXEC; + if (flags & AT_SYMLINK_NOFOLLOW) + oflags |= O_NOFOLLOW; + fd = openat (dirfd, path, oflags); + } + if (fd < 0) + return -1; + + struct fd_to_filename fdfilename; + const char *gfilename = __fd_to_filename (fd, &fdfilename); + + /* We do not need the return value. */ + __execve (gfilename, argv, envp); + + int save = errno; + + /* We come here only if the 'execve' call fails. Determine whether + /proc is mounted. If not we return ENOSYS. */ + struct stat st; + if (stat ("/proc/self/fd", &st) != 0 && errno == ENOENT) + save = ENOSYS; + + if (fd != dirfd) + __close_nocancel (fd); + __set_errno (save); +#endif + + return -1; +} diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index baf4250..e8c2d3d 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -2058,6 +2058,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 8b0242a..fe5ee28 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2224,6 +2224,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index b6ba86d..4700db0 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -2090,6 +2090,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index e1f7e19..d5e2f01 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -140,6 +140,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 2d72609..e57ceb3 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -2170,6 +2170,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist index 7c78649..4d62b52 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist @@ -2150,6 +2150,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist index da2194b..74f90d3 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist @@ -2147,6 +2147,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 9fa655b..6abb53d 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -2141,6 +2141,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index 3f6da71..1dd375d 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -2139,6 +2139,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index de99093..a14d143 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -2147,6 +2147,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 754491f..0f33c15 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -2141,6 +2141,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index 36a8751..1940513 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2188,6 +2188,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 6de9bed..0cf4438 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -2197,6 +2197,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index 5c8c589..a545549 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -2230,6 +2230,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist index 9211480..fc35572 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist @@ -2060,6 +2060,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist index b01fdcf..cafdd74 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist @@ -2350,6 +2350,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist index 45cbeb1..0e874bb 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist @@ -2117,6 +2117,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index d0752db..1ca91ad 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -2195,6 +2195,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index af5f14d..083a3b3 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -2096,6 +2096,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist index 038ce27..40fa763 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist @@ -2065,6 +2065,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist index 182970a..5a9f2a2 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist @@ -2062,6 +2062,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index a2521c3..1e9d86b 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -2186,6 +2186,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index d818890..91c3534 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -2113,6 +2113,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 1a96103..aa0eee4 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -2071,6 +2071,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 35745a7..694326c 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2168,6 +2168,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F |