From: Siddhesh Poyarekar <siddhesh@gotplt.org>
To: Sergey Bugaev <bugaevc@gmail.com>, libc-alpha@sourceware.org
Cc: Hector Martin <marcan@marcan.st>
Subject: Re: [RFC PATCH 1/1] io: Add FORTIFY_SOURCE check for fcntl arguments
Date: Tue, 23 May 2023 15:15:45 -0400 [thread overview]
Message-ID: <be0c6485-b43a-256e-41f9-71181a0b17b1@gotplt.org> (raw)
In-Reply-To: <20230519213059.3812385-2-bugaevc@gmail.com>
On 2023-05-19 17:30, Sergey Bugaev via Libc-alpha wrote:
> Both open () and fcntl () are "overloaded" to accept either 2 or 3
> arguments; whether the last argument is required depends on the values
> of the previous arguments. Since C provides no native support for
> function overloading, this is implemented by making these functions
> vararg. Unfortunately, this means the compiler is unable to check the
> number of arguments and their types for correctness at compile time, and
> will not diagnose any mistakes.
>
> To help with this, when FORTIFY_SOURCE is enabled, the special fcntl2.h
> header replaces open () with a wrapper that checks the passed number of
> arguments, raising a compile-time or run-time error on mismatch. This
> commit adds similar handling for fcntl ().
>
> Recently, Hector Martin <marcan@marcan.st> has identified an issue in
> libwebrtc where fcntl (fd, F_DUPFD_CLOEXEC) was invoked without a third
> argument [0]. With the patch, the bug would have been detected at
> compile time, assuming libwebrtc is built with FORTIFY_SOURCE. Hopefully
> this will help detecting similar bugs in existing software, and prevent
> more instances of similar bugs from being introduced in the future.
>
> [0]: https://social.treehouse.systems/@marcan/110355001391961285
>
> The abilists have been modified with 'make update-abi-all'.
>
> Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
> ---
> include/fcntl.h | 3 +
> io/Makefile | 2 +-
> io/Versions | 4 +
> io/bits/fcntl2.h | 139 ++++++++++++++++++
> io/fcntl64_2.c | 33 +++++
> io/fcntl_2.c | 33 +++++
> sysdeps/mach/hurd/i386/libc.abilist | 2 +
> sysdeps/mach/hurd/x86_64/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/csky/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/i386/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 +
> .../sysv/linux/loongarch/lp64/libc.abilist | 2 +
> .../sysv/linux/m68k/coldfire/libc.abilist | 2 +
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 +
> .../sysv/linux/microblaze/be/libc.abilist | 2 +
> .../sysv/linux/microblaze/le/libc.abilist | 2 +
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 +
> .../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n32/libc.abilist | 2 +
> .../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/or1k/libc.abilist | 2 +
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 +
> .../powerpc/powerpc32/nofpu/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/be/libc.abilist | 2 +
> .../linux/powerpc/powerpc64/le/libc.abilist | 2 +
> .../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
> .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 2 +
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 +
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 +
> .../sysv/linux/sparc/sparc32/libc.abilist | 2 +
> .../sysv/linux/sparc/sparc64/libc.abilist | 2 +
> .../unix/sysv/linux/x86_64/64/libc.abilist | 2 +
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
> 42 files changed, 285 insertions(+), 1 deletion(-)
> create mode 100644 io/fcntl64_2.c
> create mode 100644 io/fcntl_2.c
>
> diff --git a/include/fcntl.h b/include/fcntl.h
> index d788db2e..7742c002 100644
> --- a/include/fcntl.h
> +++ b/include/fcntl.h
> @@ -32,6 +32,9 @@ extern int __open64_2 (const char *__path, int __oflag);
> extern int __openat_2 (int __fd, const char *__path, int __oflag);
> extern int __openat64_2 (int __fd, const char *__path, int __oflag);
>
> +extern int __fcntl_2 (int __fd, int __cmd);
> +extern int __fcntl64_2 (int __fd, int __cmd);
> +
With my Bikeshed Aesthetics Consultant hat on, the naming of fortified
variants of file ops functions as *_2 is awkward, they should have been
*_chk but I don't want to block this good work on that. The overall
direction is good IMO (and I see Adhemerval is on it with a deeper
review), just some notes:
- manual/contrib.texi should be updated to mention fcntl
- Internal users end up calling __libc_fcntl (see dup2.c or grantpt.c
for example), which will essentially bypass any fortification. This is
not a problem today since we don't build glibc with fortification, but
Frederic Berat[1] has been experimenting with that and we're hoping to
get at least a subset of glibc fortified for 2.38. It would be a shame
to miss fortifying glibc itself. This is again not a problem that would
block this patch, but something to be aware of.
>
> /* Makes open () & friends faster on the Hurd, but can only be used (without
> altering user-visible behavior) when we're sure that the file we're opening
> diff --git a/io/Makefile b/io/Makefile
> index f72571cd..350807ee 100644
> --- a/io/Makefile
> +++ b/io/Makefile
> @@ -41,7 +41,7 @@ routines := \
> mkdir mkdirat \
> open open_2 open64 open64_2 openat openat_2 openat64 openat64_2 \
> read write lseek lseek64 access euidaccess faccessat \
> - fcntl fcntl64 flock lockf lockf64 \
> + fcntl fcntl_2 fcntl64 fcntl64_2 flock lockf lockf64 \
> close dup dup2 dup3 pipe pipe2 \
> creat creat64 \
> chdir fchdir \
> diff --git a/io/Versions b/io/Versions
> index 4e195408..8409e105 100644
> --- a/io/Versions
> +++ b/io/Versions
> @@ -140,6 +140,10 @@ libc {
> GLIBC_2.34 {
> closefrom;
> }
> + GLIBC_2.38 {
> + __fcntl_2;
> + __fcntl64_2;
> + }
> GLIBC_PRIVATE {
> __libc_fcntl64;
> __fcntl_nocancel;
> diff --git a/io/bits/fcntl2.h b/io/bits/fcntl2.h
> index bdb48fa8..beb3a628 100644
> --- a/io/bits/fcntl2.h
> +++ b/io/bits/fcntl2.h
> @@ -170,3 +170,142 @@ openat64 (int __fd, const char *__path, int __oflag, ...)
> }
> # endif
> #endif
> +
> +#ifndef __USE_TIME_BITS64
> +
> +# ifndef __USE_FILE_OFFSET64
> +/* Just fcntl (). */
> +extern int __fcntl_2 (int __fd, int __cmd);
> +extern int __REDIRECT (__fcntl_alias, (int __fd, int __cmd, ...), fcntl);
> +# else
> +/* fcntl.h redirects fcntl () to fcntl64 (). */
> +extern int __REDIRECT (__fcntl_2, (int __fd, int __cmd), __fcntl64_2);
> +extern int __REDIRECT (__fcntl_alias, (int __fd, int __cmd, ...), fcntl64);
> +# endif /* __USE_FILE_OFFSET64 */
> +
> +# ifdef __USE_LARGEFILE64
> +/* Just fcntl64 (). */
> +extern int __fcntl64_2 (int __fd, int __cmd);
> +extern int __REDIRECT (__fcntl64_alias, (int __fd, int __cmd, ...), fcntl64);
> +# endif
> +
> +#else /* __USE_TIME_BITS64 */
> +
> +/* fcntl.h redirects both fcntl () and fcntl64 () to __fcntl_time64 (). */
> +extern int __fcntl64_2 (int __fd, int __cmd);
> +extern int __REDIRECT (__fcntl_2, (int __fd, int __cmd), __fcntl64_2);
> +extern int __REDIRECT_NTH (__fcntl_alias, (int __fd, int __cmd, ...),
> + __fcntl_time64);
> +extern int __REDIRECT_NTH (__fcntl64_alias, (int __fd, int __cmd, ...),
> + __fcntl_time64);
> +#endif /* __USE_TIME_BITS64 */
> +
> +__errordecl (__fcntl_too_many_args,
> + "fcntl can be called either with 2 or 3 arguments, not more");
> +__errordecl (__fcntl_missing_arg,
> + "fcntl with with this cmd needs 3 arguments");
> +
> +__extern_always_inline int
> +__fcntl_cmd_needs_arg (int __cmd)
> +{
> + switch (__cmd)
> + {
> + case F_DUPFD:
> + case F_DUPFD_CLOEXEC:
> + case F_SETFD:
> + case F_SETFL:
> +#ifdef F_SETLK
> + case F_SETLK:
> + case F_SETLKW:
> + case F_GETLK:
> +#endif
> +#ifdef F_OFD_SETLK
> + case F_OFD_SETLK:
> + case F_OFD_SETLKW:
> + case F_OFD_GETLK:
> +#endif
> +#ifdef F_SETOWN
> + case F_SETOWN:
> +#endif
> +#ifdef __F_GETOWN_EX
> + case __F_GETOWN_EX:
> + case __F_SETOWN_EX:
> + case __F_SETSIG:
> +#endif
> +#ifdef F_SETLEASE
> + case F_SETLEASE:
> + case F_NOTIFY:
> + case F_SETPIPE_SZ:
> + case F_ADD_SEALS:
> + case F_GET_RW_HINT:
> + case F_SET_RW_HINT:
> + case F_GET_FILE_RW_HINT:
> + case F_SET_FILE_RW_HINT:
> +#endif
> + return 1;
> +
> + case F_GETFD:
> + case F_GETFL:
> +#ifdef F_GETOWN
> + case F_GETOWN:
> +#endif
> +#ifdef __F_GETSIG
> + case __F_GETSIG:
> +#endif
> +#ifdef F_GETLEASE
> + case F_GETLEASE:
> + case F_GETPIPE_SZ:
> + case F_GET_SEALS:
> +#endif
> + /* For any cmd value we don't know about,
> + default to not requiring an argument. */
> + default:
> + return 0;
> + }
> +}
> +
> +__fortify_function int
> +fcntl (int __fd, int __cmd, ...)
> +{
> + if (__va_arg_pack_len () > 1)
> + __fcntl_too_many_args ();
> +
> + if (__builtin_constant_p (__cmd))
> + {
> + if (__fcntl_cmd_needs_arg (__cmd) && __va_arg_pack_len () < 1)
> + {
> + __fcntl_missing_arg ();
> + return __fcntl_2 (__fd, __cmd);
> + }
> + return __fcntl_alias (__fd, __cmd, __va_arg_pack ());
> + }
> +
> + if (__va_arg_pack_len () < 1)
> + return __fcntl_2 (__fd, __cmd);
> +
> + return __fcntl_alias (__fd, __cmd, __va_arg_pack ());
> +}
> +
> +#ifdef __USE_LARGEFILE64
> +__fortify_function int
> +fcntl64 (int __fd, int __cmd, ...)
> +{
> + if (__va_arg_pack_len () > 1)
> + __fcntl_too_many_args ();
> +
> + if (__builtin_constant_p (__cmd))
> + {
> + if (__fcntl_cmd_needs_arg (__cmd) && __va_arg_pack_len () < 1)
> + {
> + __fcntl_missing_arg ();
Given that this will error out at compile time, do we even need this
__fcntl64_2 call?
> + return __fcntl64_2 (__fd, __cmd);
> + }
> + return __fcntl64_alias (__fd, __cmd, __va_arg_pack ());
> + }
> +
> + if (__va_arg_pack_len () < 1)
> + return __fcntl64_2 (__fd, __cmd);
> +
> + return __fcntl64_alias (__fd, __cmd, __va_arg_pack ());
> +}
> +#endif
> diff --git a/io/fcntl64_2.c b/io/fcntl64_2.c
> new file mode 100644
> index 00000000..6352f524
> --- /dev/null
> +++ b/io/fcntl64_2.c
> @@ -0,0 +1,33 @@
> +/* _FORTIFY_SOURCE wrapper for fcntl64.
> + Copyright (C) 2013-2023 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/>. */
> +
> +/* Make sure to get __fcntl_cmd_needs_arg from bits/fcntl2.h */
> +#undef _FORTIFY_SOURCE
> +#define _FORTIFY_SOURCE 1
> +
> +#include <fcntl.h>
> +#include <stdio.h>
> +
> +int
> +__fcntl64_2 (int fd, int cmd)
> +{
> + if (__fcntl_cmd_needs_arg (cmd))
> + __fortify_fail ("invalid fcntl64 call: this cmd requires an argument");
> +
> + return __libc_fcntl64 (fd, cmd);
> +}
> diff --git a/io/fcntl_2.c b/io/fcntl_2.c
> new file mode 100644
> index 00000000..fc9303e4
> --- /dev/null
> +++ b/io/fcntl_2.c
> @@ -0,0 +1,33 @@
> +/* _FORTIFY_SOURCE wrapper for fcntl.
> + Copyright (C) 2013-2023 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/>. */
> +
> +/* Make sure to get __fcntl_cmd_needs_arg from bits/fcntl2.h */
> +#undef _FORTIFY_SOURCE
> +#define _FORTIFY_SOURCE 1
> +
> +#include <fcntl.h>
> +#include <stdio.h>
> +
> +int
> +__fcntl_2 (int fd, int cmd)
> +{
> + if (__fcntl_cmd_needs_arg (cmd))
> + __fortify_fail ("invalid fcntl call: this cmd requires an argument");
> +
> + return __libc_fcntl (fd, cmd);
> +}
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
> index 6925222f..fa24d577 100644
> --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -2294,6 +2294,8 @@ GLIBC_2.36 arc4random_buf F
> GLIBC_2.36 arc4random_uniform F
> GLIBC_2.36 c8rtomb F
> GLIBC_2.36 mbrtoc8 F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist b/sysdeps/mach/hurd/x86_64/libc.abilist
> index a0be5c1a..efb83b16 100644
> --- a/sysdeps/mach/hurd/x86_64/libc.abilist
> +++ b/sysdeps/mach/hurd/x86_64/libc.abilist
> @@ -194,6 +194,8 @@ GLIBC_2.38 __errno_location F
> GLIBC_2.38 __explicit_bzero_chk F
> GLIBC_2.38 __fbufsize F
> GLIBC_2.38 __fcntl F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __fdelt_chk F
> GLIBC_2.38 __fdelt_warn F
> GLIBC_2.38 __fentry__ F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> index 0e2d9c30..86144979 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> @@ -2633,6 +2633,8 @@ GLIBC_2.36 pidfd_open F
> GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> index f1bec197..646c11e3 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
> @@ -2730,6 +2730,8 @@ GLIBC_2.36 pidfd_open F
> GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
> index aa874b88..37e9129f 100644
> --- a/sysdeps/unix/sysv/linux/arc/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
> @@ -2394,6 +2394,8 @@ GLIBC_2.36 pidfd_open F
> GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> index afbd57da..4c9b937e 100644
> --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
> @@ -514,6 +514,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> index e7364cd3..8dbf72c5 100644
> --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> @@ -511,6 +511,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
> index 913fa592..b58b2b9c 100644
> --- a/sysdeps/unix/sysv/linux/csky/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
> @@ -2670,6 +2670,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> index 43af3a98..c80bb835 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
> @@ -2619,6 +2619,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
> index af72f8fa..5a737b3d 100644
> --- a/sysdeps/unix/sysv/linux/i386/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
> @@ -2803,6 +2803,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> index 48cbb0fa..aab6d422 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
> @@ -2568,6 +2568,8 @@ GLIBC_2.36 pidfd_open F
> GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist b/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
> index c15884bb..82da98d2 100644
> --- a/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
> @@ -2154,6 +2154,8 @@ GLIBC_2.36 wprintf F
> GLIBC_2.36 write F
> GLIBC_2.36 writev F
> GLIBC_2.36 wscanf F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> index 3738db81..f6c80b46 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
> @@ -515,6 +515,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> index ed136277..dc34ea56 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> @@ -2746,6 +2746,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> index 83577386..466e4092 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> @@ -2719,6 +2719,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> index 58c5da58..dc27b4e7 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
> @@ -2716,6 +2716,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> index d3741945..a8dfa647 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> @@ -2711,6 +2711,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> index 5319fdc2..4defd8dc 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
> @@ -2709,6 +2709,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> index 1743ea6e..824b6b4c 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> @@ -2717,6 +2717,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> index 9b1f53c6..ff4341a8 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> @@ -2619,6 +2619,8 @@ GLIBC_2.36 pidfd_open F
> GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> index ae1c6ca1..ede0e6eb 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
> @@ -2758,6 +2758,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/or1k/libc.abilist b/sysdeps/unix/sysv/linux/or1k/libc.abilist
> index a7c572c9..22525fe8 100644
> --- a/sysdeps/unix/sysv/linux/or1k/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/or1k/libc.abilist
> @@ -2140,6 +2140,8 @@ GLIBC_2.36 pidfd_open F
> GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> index 074fa031..2938361e 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> @@ -2773,6 +2773,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> index dfcb4bd2..e1c70a25 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
> @@ -2806,6 +2806,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> index 63bbccf3..2ce2d974 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> @@ -2527,6 +2527,8 @@ GLIBC_2.36 pidfd_open F
> GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> index ab85fd61..b1024501 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> @@ -2829,6 +2829,8 @@ GLIBC_2.36 pidfd_open F
> GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fscanfieee128 F
> GLIBC_2.38 __isoc23_fwscanf F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> index b716f5c7..833fb747 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
> @@ -2396,6 +2396,8 @@ GLIBC_2.36 pidfd_open F
> GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> index 774e777b..cbd85454 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> @@ -2596,6 +2596,8 @@ GLIBC_2.36 pidfd_open F
> GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> index 8625135c..1442a0b9 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> @@ -2771,6 +2771,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> index d00c7eb2..1a7f4fc7 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> @@ -2564,6 +2564,8 @@ GLIBC_2.36 pidfd_open F
> GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> index b6303724..3146ce99 100644
> --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
> @@ -2626,6 +2626,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> index d8005561..31360691 100644
> --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> @@ -2623,6 +2623,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> index 5be55c11..026e9581 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> @@ -2766,6 +2766,8 @@ GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> GLIBC_2.37 __ppoll64_chk F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> index 475fdaae..6ecb0d46 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> @@ -2591,6 +2591,8 @@ GLIBC_2.36 pidfd_open F
> GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> index 6cfb928b..a37f4ab4 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> @@ -2542,6 +2542,8 @@ GLIBC_2.36 pidfd_open F
> GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> index c7350971..3b8790f4 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> @@ -2648,6 +2648,8 @@ GLIBC_2.36 pidfd_open F
> GLIBC_2.36 pidfd_send_signal F
> GLIBC_2.36 process_madvise F
> GLIBC_2.36 process_mrelease F
> +GLIBC_2.38 __fcntl64_2 F
> +GLIBC_2.38 __fcntl_2 F
> GLIBC_2.38 __isoc23_fscanf F
> GLIBC_2.38 __isoc23_fwscanf F
> GLIBC_2.38 __isoc23_scanf F
[1] https://patchwork.sourceware.org/project/glibc/list/?series=19418
next prev parent reply other threads:[~2023-05-23 19:15 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-19 21:30 [RFC PATCH 0/1] Attempt to detect missing fcntl argument at compile time Sergey Bugaev
2023-05-19 21:30 ` [RFC PATCH 1/1] io: Add FORTIFY_SOURCE check for fcntl arguments Sergey Bugaev
2023-05-19 21:55 ` Joseph Myers
2023-05-20 11:46 ` Sergey Bugaev
2023-05-20 18:21 ` [RFC PATCH] debug: Add tests for fortified fcntl () Sergey Bugaev
2023-05-23 18:40 ` Adhemerval Zanella Netto
2023-05-23 19:19 ` Sergey Bugaev
2023-05-23 19:48 ` Adhemerval Zanella Netto
2023-05-24 7:15 ` Sergey Bugaev
2023-05-24 12:15 ` Adhemerval Zanella Netto
2023-05-23 19:09 ` [RFC PATCH 1/1] io: Add FORTIFY_SOURCE check for fcntl arguments Adhemerval Zanella Netto
2023-05-23 19:43 ` Sergey Bugaev
2023-05-23 19:56 ` Adhemerval Zanella Netto
2023-05-23 20:24 ` Sergey Bugaev
2023-05-23 20:44 ` Sergey Bugaev
2023-05-24 12:04 ` Adhemerval Zanella Netto
2023-05-23 19:15 ` Siddhesh Poyarekar [this message]
2023-05-23 20:01 ` Sergey Bugaev
2023-05-23 20:06 ` Sergey Bugaev
2023-05-23 21:46 ` Florian Weimer
2023-05-24 7:31 ` Sergey Bugaev
2023-05-24 8:29 ` Florian Weimer
2023-05-24 10:51 ` Sergey Bugaev
2023-05-24 11:18 ` Florian Weimer
2023-05-24 11:46 ` Siddhesh Poyarekar
2023-05-24 12:12 ` Andreas Schwab
2023-05-24 12:18 ` Florian Weimer
2023-05-24 12:37 ` Sergey Bugaev
2023-05-24 12:45 ` Florian Weimer
2023-05-24 13:02 ` Sergey Bugaev
2023-05-24 13:18 ` Florian Weimer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=be0c6485-b43a-256e-41f9-71181a0b17b1@gotplt.org \
--to=siddhesh@gotplt.org \
--cc=bugaevc@gmail.com \
--cc=libc-alpha@sourceware.org \
--cc=marcan@marcan.st \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).