diff options
Diffstat (limited to 'sysdeps/unix')
-rw-r--r-- | sysdeps/unix/sysv/linux/check_pf.c | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/s390-32/getutent.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/s390-32/getutid.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/s390-32/getutline.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/set-freeres-os.h | 24 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/ttyname.c | 8 |
6 files changed, 31 insertions, 7 deletions
diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c index de207122b0..b157c5126c 100644 --- a/sysdeps/unix/sysv/linux/check_pf.c +++ b/sysdeps/unix/sysv/linux/check_pf.c @@ -362,7 +362,8 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6, } /* Free the cache if it has been allocated. */ -libc_freeres_fn (freecache) +void +__check_pf_freemem (void) { if (cache) __free_in6ai (cache->in6ai); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c index d8188f8b5b..562495b122 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c +++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c @@ -25,6 +25,7 @@ # define weak_alias(n,a) #endif #include "login/getutent.c" +_weak_alias (buffer, __libc_getutent_freemem_ptr) #if defined SHARED default_symbol_version (__getutent, getutent, UTMP_COMPAT_BASE); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c index cd981c72ba..ccdc25b2d6 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c +++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c @@ -25,6 +25,7 @@ # define weak_alias(n,a) #endif #include "login/getutid.c" +_weak_alias (buffer, __libc_getutid_freemem_ptr) #if defined SHARED default_symbol_version (__getutid, getutid, UTMP_COMPAT_BASE); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c index 0b611619f1..16e8f17915 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c +++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c @@ -25,6 +25,7 @@ # define weak_alias(n,a) #endif #include "login/getutline.c" +_weak_alias (buffer, __libc_getutline_freemem_ptr) #if defined SHARED default_symbol_version (__getutline, getutline, UTMP_COMPAT_BASE); diff --git a/sysdeps/unix/sysv/linux/set-freeres-os.h b/sysdeps/unix/sysv/linux/set-freeres-os.h new file mode 100644 index 0000000000..964c9a4bfc --- /dev/null +++ b/sysdeps/unix/sysv/linux/set-freeres-os.h @@ -0,0 +1,24 @@ +/* System specific resource deallocation. Linux version. + Copyright (C) 2022 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/>. */ + +extern void __check_pf_freemem (void) attribute_hidden; +extern char * __ttyname_freemem_ptr attribute_hidden; + +#define call_freeres_os_funcs \ + call_function_static_weak (__check_pf_freemem); \ + call_free_static_weak (__ttyname_freemem_ptr) diff --git a/sysdeps/unix/sysv/linux/ttyname.c b/sysdeps/unix/sysv/linux/ttyname.c index f3870f8ec3..406fbb30f2 100644 --- a/sysdeps/unix/sysv/linux/ttyname.c +++ b/sysdeps/unix/sysv/linux/ttyname.c @@ -19,15 +19,11 @@ #include <limits.h> #include <termios.h> #include <stdlib.h> - +#include <set-freeres.h> #include "ttyname.h" static char *ttyname_buf = NULL; - -libc_freeres_fn (free_mem) -{ - free (ttyname_buf); -} +weak_alias (ttyname_buf, __ttyname_freemem_ptr) /* Return the pathname of the terminal FD is open on, or NULL on errors. The returned storage is good only until the next call to this function. */ |