Message ID | 20250317124819.1010779-4-fberat@redhat.com |
---|---|
State | New |
Headers | show |
Series | Add _FORTIFY_SOURCE support for inet_ntop | expand |
On Mon, Mar 17, 2025 at 9:52 AM Frédéric Bérat <fberat@redhat.com> wrote: > > - Create the __inet_ntop_chk routine that verifies that the builtin size > of the destination buffer is at least as big as the size given by the > user. > +const char * > +__inet_ntop_chk (int af, const void *src, char *dst, > + socklen_t size, size_t dst_size) > +{ > + if (size > dst_size) > + __chk_fail (); > + Just a tiny suggestion/request. __chk_fail (); is very generic and user unfriendly, please use something like __libc_fatal("inet_ntop destination buffer is too small") or something meaningful.
On Mon, Mar 17, 2025 at 2:43 PM Cristian Rodríguez <cristian@rodriguez.im> wrote: > On Mon, Mar 17, 2025 at 9:52 AM Frédéric Bérat <fberat@redhat.com> wrote: > > > > - Create the __inet_ntop_chk routine that verifies that the builtin size > > of the destination buffer is at least as big as the size given by the > > user. > > > +const char * > > +__inet_ntop_chk (int af, const void *src, char *dst, > > + socklen_t size, size_t dst_size) > > +{ > > + if (size > dst_size) > > + __chk_fail (); > > + > > Just a tiny suggestion/request. __chk_fail (); is very generic and > user unfriendly, please use something like __libc_fatal("inet_ntop > destination buffer is too small") or something meaningful. > Fair enough, I merely followed the pattern I've seen on other checks, I'm fine to change that. I'll wait for a bit more feedback before sending a v2.
* Frederic Berat: > On Mon, Mar 17, 2025 at 2:43 PM Cristian Rodríguez <cristian@rodriguez.im> wrote: > >> On Mon, Mar 17, 2025 at 9:52 AM Frédéric Bérat <fberat@redhat.com> wrote: >> > >> > - Create the __inet_ntop_chk routine that verifies that the builtin size >> > of the destination buffer is at least as big as the size given by the >> > user. >> >> > +const char * >> > +__inet_ntop_chk (int af, const void *src, char *dst, >> > + socklen_t size, size_t dst_size) >> > +{ >> > + if (size > dst_size) >> > + __chk_fail (); >> > + >> >> Just a tiny suggestion/request. __chk_fail (); is very generic and >> user unfriendly, please use something like __libc_fatal("inet_ntop >> destination buffer is too small") or something meaningful. > > Fair enough, I merely followed the pattern I've seen on other checks, > I'm fine to change that. I'll wait for a bit more feedback before > sending a v2. We should fix this more globally, and not for just for this function. You can keep using __chk_fail for this change. Thanks, Florian
* Frédéric Bérat: > - Create the __inet_ntop_chk routine that verifies that the builtin size > of the destination buffer is at least as big as the size given by the > user. > - Redirect calls from inet_ntop to __inet_ntop_chk or __inet_ntop_warn > - Update the abilist for this new routine > - Update man pages to mention the new fortification Update [the manual] to mention the new fortification (Manpages are a separate project.) > diff --git a/debug/tst-fortify.c b/debug/tst-fortify.c > index f8ccc2dff5..128f271c03 100644 > --- a/debug/tst-fortify.c > +++ b/debug/tst-fortify.c > @@ -23,6 +23,7 @@ > > #include <assert.h> > #include <fcntl.h> > +#include <arpa/inet.h> > #include <limits.h> > #include <locale.h> > #include <obstack.h> > @@ -1832,6 +1833,26 @@ do_test (void) > # endif > #endif > > + struct in6_addr addr6; > + struct in_addr addr; > + char addrstr6[INET6_ADDRSTRLEN]; > + char addrstr[INET_ADDRSTRLEN]; > + > + if (inet_ntop (AF_INET6, &addr6, addrstr6, sizeof (addrstr6)) == NULL) > + FAIL (); > + if (inet_ntop (AF_INET, &addr, addrstr, sizeof (addrstr)) == NULL) > + FAIL (); Doesn't this use uninitialized inputs? Maybe add an initialization to addr, addr6. > + > +#if __USE_FORTIFY_LEVEL >= 1 > + CHK_FAIL_START > + inet_ntop (AF_INET6, &addr6, buf, INET6_ADDRSTRLEN); > + CHK_FAIL_END > + > + CHK_FAIL_START > + inet_ntop (AF_INET, &addr, buf, INET_ADDRSTRLEN); > + CHK_FAIL_END > +#endif (buf is just 10 bytes, so both INET6_ADDRSTRLEN and INET_ADDRSTRLEN will trap.) > diff --git a/include/arpa/inet.h b/include/arpa/inet.h > index f389c28cb2..d8afbf259b 100644 > --- a/include/arpa/inet.h > +++ b/include/arpa/inet.h > @@ -3,12 +3,16 @@ > #include <inet/arpa/inet.h> > > #ifndef _ISOMAC > +/* Declare functions with security checks. */ > +#include <bits/inet-fortified-decl.h> Why is this necessary? Wouldn't this included by <inet/arpa/inet.h> above? Is this to check that the declaration matches the definition? > diff --git a/inet/arpa/inet.h b/inet/arpa/inet.h > index 42d38c330d..d381df7066 100644 > --- a/inet/arpa/inet.h > +++ b/inet/arpa/inet.h > @@ -65,7 +65,6 @@ extern const char *inet_ntop (int __af, const void *__restrict __cp, > char *__restrict __buf, socklen_t __len) > __THROW; > > - Spurious whitespace change. > diff --git a/inet/bits/inet-fortified.h b/inet/bits/inet-fortified.h > new file mode 100644 > index 0000000000..86b6d56d7b > --- /dev/null > +++ b/inet/bits/inet-fortified.h > +__fortify_function __attribute_overloadable__ const char * > +__NTH (inet_ntop (int __af, > + __fortify_clang_overload_arg (const void *, __restrict, __src), > + char *__restrict __dst, socklen_t __dst_size)) > + __fortify_clang_warning_only_if_bos_lt(__dst_size, __dst, > + "inet_ntop called with bigger length " > + "than size of destination buffer") > +{ > + return __glibc_fortify (inet_ntop, __dst_size, sizeof(char), > + __glibc_objsize(__dst), > + __af, __src, __dst, __dst_size); Missing whitespace before various '('. Thanks, Florian
On Tue, Mar 18, 2025 at 1:08 PM Florian Weimer <fweimer@redhat.com> wrote: > * Frédéric Bérat: > > > - Create the __inet_ntop_chk routine that verifies that the builtin size > > of the destination buffer is at least as big as the size given by the > > user. > > - Redirect calls from inet_ntop to __inet_ntop_chk or __inet_ntop_warn > > - Update the abilist for this new routine > > - Update man pages to mention the new fortification > > Update [the manual] to mention the new fortification > > (Manpages are a separate project.) > Noted. > > > diff --git a/debug/tst-fortify.c b/debug/tst-fortify.c > > index f8ccc2dff5..128f271c03 100644 > > --- a/debug/tst-fortify.c > > +++ b/debug/tst-fortify.c > > @@ -23,6 +23,7 @@ > > > > #include <assert.h> > > #include <fcntl.h> > > +#include <arpa/inet.h> > > #include <limits.h> > > #include <locale.h> > > #include <obstack.h> > > @@ -1832,6 +1833,26 @@ do_test (void) > > # endif > > #endif > > > > + struct in6_addr addr6; > > + struct in_addr addr; > > + char addrstr6[INET6_ADDRSTRLEN]; > > + char addrstr[INET_ADDRSTRLEN]; > > + > > + if (inet_ntop (AF_INET6, &addr6, addrstr6, sizeof (addrstr6)) == NULL) > > + FAIL (); > > + if (inet_ntop (AF_INET, &addr, addrstr, sizeof (addrstr)) == NULL) > > + FAIL (); > > Doesn't this use uninitialized inputs? Maybe add an initialization to > addr, addr6. > > I will. > > + > > +#if __USE_FORTIFY_LEVEL >= 1 > > + CHK_FAIL_START > > + inet_ntop (AF_INET6, &addr6, buf, INET6_ADDRSTRLEN); > > + CHK_FAIL_END > > + > > + CHK_FAIL_START > > + inet_ntop (AF_INET, &addr, buf, INET_ADDRSTRLEN); > > + CHK_FAIL_END > > +#endif > > (buf is just 10 bytes, so both INET6_ADDRSTRLEN and INET_ADDRSTRLEN will > trap.) > > > diff --git a/include/arpa/inet.h b/include/arpa/inet.h > > index f389c28cb2..d8afbf259b 100644 > > --- a/include/arpa/inet.h > > +++ b/include/arpa/inet.h > > @@ -3,12 +3,16 @@ > > #include <inet/arpa/inet.h> > > > > #ifndef _ISOMAC > > +/* Declare functions with security checks. */ > > +#include <bits/inet-fortified-decl.h> > > Why is this necessary? Wouldn't this included by <inet/arpa/inet.h> > above? Is this to check that the declaration matches the definition? > > The inet-fortified-decl.h is included by inet-fortified.h which itself is only included if FORITIFY_SOURCE is non-zero while this header needs to be included unconditionally (otherwise build would fail when fortification is disabled). > > diff --git a/inet/arpa/inet.h b/inet/arpa/inet.h > > index 42d38c330d..d381df7066 100644 > > --- a/inet/arpa/inet.h > > +++ b/inet/arpa/inet.h > > @@ -65,7 +65,6 @@ extern const char *inet_ntop (int __af, const void > *__restrict __cp, > > char *__restrict __buf, socklen_t __len) > > __THROW; > > > > - > > Spurious whitespace change. > > Noted. > > diff --git a/inet/bits/inet-fortified.h b/inet/bits/inet-fortified.h > > new file mode 100644 > > index 0000000000..86b6d56d7b > > --- /dev/null > > +++ b/inet/bits/inet-fortified.h > > > +__fortify_function __attribute_overloadable__ const char * > > +__NTH (inet_ntop (int __af, > > + __fortify_clang_overload_arg (const void *, __restrict, __src), > > + char *__restrict __dst, socklen_t __dst_size)) > > + __fortify_clang_warning_only_if_bos_lt(__dst_size, __dst, > > + "inet_ntop called with bigger > length " > > + "than size of destination > buffer") > > +{ > > + return __glibc_fortify (inet_ntop, __dst_size, sizeof(char), > > + __glibc_objsize(__dst), > > + __af, __src, __dst, __dst_size); > > Missing whitespace before various '('. > Noted. > > Thanks, > Florian > >
diff --git a/debug/Makefile b/debug/Makefile index 6a05205ce6..905f2bf7e0 100644 --- a/debug/Makefile +++ b/debug/Makefile @@ -55,6 +55,7 @@ routines = \ gethostname_chk \ gets_chk \ getwd_chk \ + inet_ntop_chk \ longjmp_chk \ mbsnrtowcs_chk \ mbsrtowcs_chk \ diff --git a/debug/Versions b/debug/Versions index 9cf2725992..2ae5747f8d 100644 --- a/debug/Versions +++ b/debug/Versions @@ -64,6 +64,9 @@ libc { __wcslcat_chk; __wcslcpy_chk; } + GLIBC_2.42 { + __inet_ntop_chk; + } GLIBC_PRIVATE { __fortify_fail; } diff --git a/debug/inet_ntop_chk.c b/debug/inet_ntop_chk.c new file mode 100644 index 0000000000..e1ec600fbb --- /dev/null +++ b/debug/inet_ntop_chk.c @@ -0,0 +1,30 @@ +/* Copyright (C) 2025 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 <arpa/inet.h> +#include <stdio.h> + +const char * +__inet_ntop_chk (int af, const void *src, char *dst, + socklen_t size, size_t dst_size) +{ + if (size > dst_size) + __chk_fail (); + + return __inet_ntop (af, src, dst, size); +} +libc_hidden_def (__inet_ntop_chk) diff --git a/debug/tst-fortify.c b/debug/tst-fortify.c index f8ccc2dff5..128f271c03 100644 --- a/debug/tst-fortify.c +++ b/debug/tst-fortify.c @@ -23,6 +23,7 @@ #include <assert.h> #include <fcntl.h> +#include <arpa/inet.h> #include <limits.h> #include <locale.h> #include <obstack.h> @@ -1832,6 +1833,26 @@ do_test (void) # endif #endif + struct in6_addr addr6; + struct in_addr addr; + char addrstr6[INET6_ADDRSTRLEN]; + char addrstr[INET_ADDRSTRLEN]; + + if (inet_ntop (AF_INET6, &addr6, addrstr6, sizeof (addrstr6)) == NULL) + FAIL (); + if (inet_ntop (AF_INET, &addr, addrstr, sizeof (addrstr)) == NULL) + FAIL (); + +#if __USE_FORTIFY_LEVEL >= 1 + CHK_FAIL_START + inet_ntop (AF_INET6, &addr6, buf, INET6_ADDRSTRLEN); + CHK_FAIL_END + + CHK_FAIL_START + inet_ntop (AF_INET, &addr, buf, INET_ADDRSTRLEN); + CHK_FAIL_END +#endif + return ret; } diff --git a/include/arpa/inet.h b/include/arpa/inet.h index f389c28cb2..d8afbf259b 100644 --- a/include/arpa/inet.h +++ b/include/arpa/inet.h @@ -3,12 +3,16 @@ #include <inet/arpa/inet.h> #ifndef _ISOMAC +/* Declare functions with security checks. */ +#include <bits/inet-fortified-decl.h> + /* Variant of inet_aton which rejects trailing garbage. */ extern int __inet_aton_exact (const char *__cp, struct in_addr *__inp); libc_hidden_proto (__inet_aton_exact) extern __typeof (inet_ntop) __inet_ntop; libc_hidden_proto (__inet_ntop) +libc_hidden_proto (__inet_ntop_chk) libc_hidden_proto (inet_pton) extern __typeof (inet_pton) __inet_pton; diff --git a/include/bits/inet-fortified-decl.h b/include/bits/inet-fortified-decl.h new file mode 100644 index 0000000000..e6ad4d4663 --- /dev/null +++ b/include/bits/inet-fortified-decl.h @@ -0,0 +1 @@ +#include <inet/bits/inet-fortified-decl.h> diff --git a/include/bits/inet-fortified.h b/include/bits/inet-fortified.h new file mode 100644 index 0000000000..abba7c5701 --- /dev/null +++ b/include/bits/inet-fortified.h @@ -0,0 +1 @@ +#include <inet/bits/inet-fortified.h> diff --git a/inet/Makefile b/inet/Makefile index 79bacddfd5..104b5828bf 100644 --- a/inet/Makefile +++ b/inet/Makefile @@ -25,6 +25,8 @@ include ../Makeconfig headers := \ $(wildcard arpa/*.h protocols/*.h) \ bits/in.h \ + bits/inet-fortified-decl.h \ + bits/inet-fortified.h \ ifaddrs.h \ netinet/ether.h \ netinet/icmp6.h \ diff --git a/inet/arpa/inet.h b/inet/arpa/inet.h index 42d38c330d..d381df7066 100644 --- a/inet/arpa/inet.h +++ b/inet/arpa/inet.h @@ -65,7 +65,6 @@ extern const char *inet_ntop (int __af, const void *__restrict __cp, char *__restrict __buf, socklen_t __len) __THROW; - /* The following functions are not part of XNS 5.2. */ #ifdef __USE_MISC /* Convert Internet host address from numbers-and-dots notation in CP @@ -101,6 +100,11 @@ extern char *inet_nsap_ntoa (int __len, const unsigned char *__cp, char *__buf) __THROW; #endif +#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function +/* Include functions with security checks. */ +# include <bits/inet-fortified.h> +#endif + __END_DECLS #endif /* arpa/inet.h */ diff --git a/inet/bits/inet-fortified-decl.h b/inet/bits/inet-fortified-decl.h new file mode 100644 index 0000000000..23e3cf4b22 --- /dev/null +++ b/inet/bits/inet-fortified-decl.h @@ -0,0 +1,35 @@ +/* Declarations of checking macros for inet functions. + Copyright (C) 2025 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/>. */ + +#ifndef _BITS_INET_FORTIFIED_DEC_H +#define _BITS_INET_FORTIFIED_DEC_H 1 + +#ifndef _ARPA_INET_H +# error "Never include <bits/inet-fortified-decl.h> directly; use <arpa/inet.h> instead." +#endif + +extern const char *__inet_ntop_chk (int, const void *, char *, socklen_t, size_t); + +extern const char *__REDIRECT_FORTIFY_NTH (__inet_ntop_alias, + (int, const void *, char *, socklen_t), inet_ntop); +extern const char *__REDIRECT_NTH (__inet_ntop_chk_warn, + (int, const void *, char *, socklen_t, size_t), __inet_ntop_chk) + __warnattr ("inet_ntop called with bigger length than " + "size of destination buffer"); + +#endif /* bits/inet-fortified-decl.h. */ diff --git a/inet/bits/inet-fortified.h b/inet/bits/inet-fortified.h new file mode 100644 index 0000000000..86b6d56d7b --- /dev/null +++ b/inet/bits/inet-fortified.h @@ -0,0 +1,41 @@ +/* Checking macros for inet functions. + Copyright (C) 2025 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/>. */ + +#ifndef _BITS_INET_FORTIFIED_H +#define _BITS_INET_FORTIFIED_H 1 + +#ifndef _ARPA_INET_H +# error "Never include <bits/inet-fortified.h> directly; use <arpa/inet.h> instead." +#endif + +#include <bits/inet-fortified-decl.h> + +__fortify_function __attribute_overloadable__ const char * +__NTH (inet_ntop (int __af, + __fortify_clang_overload_arg (const void *, __restrict, __src), + char *__restrict __dst, socklen_t __dst_size)) + __fortify_clang_warning_only_if_bos_lt(__dst_size, __dst, + "inet_ntop called with bigger length " + "than size of destination buffer") +{ + return __glibc_fortify (inet_ntop, __dst_size, sizeof(char), + __glibc_objsize(__dst), + __af, __src, __dst, __dst_size); +}; + +#endif /* bits/inet-fortified.h. */ diff --git a/manual/maint.texi b/manual/maint.texi index 04faa222e2..ce6a556c68 100644 --- a/manual/maint.texi +++ b/manual/maint.texi @@ -303,6 +303,8 @@ The following functions and macros are fortified in @theglibc{}: @item @code{getwd} +@item @code{inet_ntop} + @item @code{longjmp} @item @code{mbsnrtowcs} diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index 461df01ffb..facb01bf8c 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -2584,6 +2584,7 @@ GLIBC_2.41 pthread_mutexattr_setrobust F GLIBC_2.41 pthread_mutexattr_setrobust_np F GLIBC_2.41 pthread_mutexattr_settype F GLIBC_2.41 pthread_sigmask F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_barrier_destroy F GLIBC_2.42 pthread_barrier_init F GLIBC_2.42 pthread_barrier_wait F diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist b/sysdeps/mach/hurd/x86_64/libc.abilist index 6f235d20ba..3c76f6ae52 100644 --- a/sysdeps/mach/hurd/x86_64/libc.abilist +++ b/sysdeps/mach/hurd/x86_64/libc.abilist @@ -2267,6 +2267,7 @@ GLIBC_2.41 pthread_mutexattr_setrobust F GLIBC_2.41 pthread_mutexattr_setrobust_np F GLIBC_2.41 pthread_mutexattr_settype F GLIBC_2.41 pthread_sigmask F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_barrier_destroy F GLIBC_2.42 pthread_barrier_init F GLIBC_2.42 pthread_barrier_wait F diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 0889725c79..afbb38fb0e 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2750,4 +2750,5 @@ GLIBC_2.39 stdc_trailing_zeros_ull F GLIBC_2.39 stdc_trailing_zeros_us F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index b33a52db70..ea11409903 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -3097,6 +3097,7 @@ GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist index 0c78cb6d9d..c6edd66fe4 100644 --- a/sysdeps/unix/sysv/linux/arc/libc.abilist +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist @@ -2511,4 +2511,5 @@ GLIBC_2.39 stdc_trailing_zeros_ull F GLIBC_2.39 stdc_trailing_zeros_us F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist index a4571bfcb3..00e46c2f7f 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist @@ -2803,6 +2803,7 @@ GLIBC_2.4 xprt_register F GLIBC_2.4 xprt_unregister F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist index 060ab80000..3a87471bfe 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist @@ -2800,6 +2800,7 @@ GLIBC_2.4 xprt_register F GLIBC_2.4 xprt_unregister F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist index 5c4f912dd8..b819f40f50 100644 --- a/sysdeps/unix/sysv/linux/csky/libc.abilist +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist @@ -2787,4 +2787,5 @@ GLIBC_2.39 stdc_trailing_zeros_ull F GLIBC_2.39 stdc_trailing_zeros_us F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index f837bf9dd1..5cb0987348 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -2824,6 +2824,7 @@ GLIBC_2.4 unshare F GLIBC_2.41 cacheflush F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 9ea9e656c1..1ec48127e1 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -3007,6 +3007,7 @@ GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist b/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist index 243422f515..82b6b0d196 100644 --- a/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist +++ b/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist @@ -2271,4 +2271,5 @@ GLIBC_2.39 stdc_trailing_zeros_ull F GLIBC_2.39 stdc_trailing_zeros_us F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 88397ad130..03818c428f 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -2783,6 +2783,7 @@ GLIBC_2.4 xprt_register F GLIBC_2.4 xprt_unregister F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 81d6333345..a2b3d25f48 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -2950,6 +2950,7 @@ GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist index 9522c31329..bc00403c50 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist @@ -2836,4 +2836,5 @@ GLIBC_2.39 stdc_trailing_zeros_ull F GLIBC_2.39 stdc_trailing_zeros_us F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist index 9e760428fb..5606a7027b 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist @@ -2833,4 +2833,5 @@ GLIBC_2.39 stdc_trailing_zeros_ull F GLIBC_2.39 stdc_trailing_zeros_us F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_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 8a2df86bed..5fab619fd6 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -2911,6 +2911,7 @@ GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index 491a9a8e15..5ba810d096 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -2909,6 +2909,7 @@ GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index ee36f595a7..e1b8f13414 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -2917,6 +2917,7 @@ GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 083709eb8a..c0ee223f3f 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -2819,6 +2819,7 @@ GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/or1k/libc.abilist b/sysdeps/unix/sysv/linux/or1k/libc.abilist index dc2d61e45a..227746ae57 100644 --- a/sysdeps/unix/sysv/linux/or1k/libc.abilist +++ b/sysdeps/unix/sysv/linux/or1k/libc.abilist @@ -2261,4 +2261,5 @@ GLIBC_2.40 setcontext F GLIBC_2.40 swapcontext F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_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 56dfb11160..46fd69dc86 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -3140,6 +3140,7 @@ GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index 4951295fd2..9887e117d8 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -3185,6 +3185,7 @@ GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist index d161a0e269..2600dc2941 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist @@ -2894,6 +2894,7 @@ GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist index b2354c9cbe..d803fecff8 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist @@ -2970,4 +2970,5 @@ GLIBC_2.39 stdc_trailing_zeros_ull F GLIBC_2.39 stdc_trailing_zeros_us F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist index 931c7332d1..a2646bde63 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist @@ -2514,4 +2514,5 @@ GLIBC_2.39 stdc_trailing_zeros_us F GLIBC_2.40 __riscv_hwprobe F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist index 187d1849e9..ad18f29f40 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist @@ -2714,4 +2714,5 @@ GLIBC_2.39 stdc_trailing_zeros_us F GLIBC_2.40 __riscv_hwprobe F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_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 b05ab0b4f5..2f76c27fb9 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -3138,6 +3138,7 @@ GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index ed29d3ee12..4ea336999c 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -2931,6 +2931,7 @@ GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist index 1f084b0046..f245f8f755 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist @@ -2830,6 +2830,7 @@ GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist index 13c45bc570..4c654a51a3 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist @@ -2827,6 +2827,7 @@ GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index ba9310be7a..d89a81edcd 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -3159,6 +3159,7 @@ GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 13ac7f307b..ee7b84249c 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -2795,6 +2795,7 @@ GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 46b6b616ac..00155d9f3e 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -2746,6 +2746,7 @@ GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 1f25723c4c..18765ec3b8 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2765,4 +2765,5 @@ GLIBC_2.39 stdc_trailing_zeros_ull F GLIBC_2.39 stdc_trailing_zeros_us F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.42 __inet_ntop_chk F GLIBC_2.42 pthread_gettid_np F