Message ID | VI1PR0802MB26211F1438AE2C0410825003832F0@VI1PR0802MB2621.eurprd08.prod.outlook.com |
---|---|
State | New |
Headers | show |
LGTM, thanks. On 07/03/2017 12:30, Wilco Dijkstra wrote: > > > ping > > > > From: Wilco Dijkstra > Sent: 10 February 2017 18:40 > To: Adhemerval Zanella > Cc: libc-alpha@sourceware.org; nd > Subject: Re: [PATCH] Rename strdup uses > > Adhemerval Zanella wrote: >> >> Ah right, although imho for such coupled patchset splitting is more confusing >> than a single one. > > Well if it helps I can easily list them together (rebased to latest sources and the > XOPEN defines now removed): > > > Remove the str(n)dup inlines from string/bits/string2.h. Although inlining > calls with constant strings shows a small (~10%) performance gain, strdup is > typically used in error reporting code, so not performance critical. > Remove the now unused __need_malloc_and_calloc related defines from stdlib.h. > > Rename existing uses of str(n)dup to __str(n)dup so it no longer needs to be > redirected to a builtin. Also building GLIBC with -Os now no longer shows localplt > or linkname space failures (partial fix for BZ #15105 and BZ #19463). > > ChangeLog: > 2017-02-10 Wilco Dijkstra <wdijkstr@arm.com> > > [BZ #15105] > [BZ #19463] > * elf/dl-cache.c (_dl_load_cache_lookup): Use __strdup. > * inet/rcmd.c (rcmd_af): Likewise. > * inet/rexec.c (rexec_af): Likewise. > * intl/dcigettext.c (_LIBC): Likewise. > * intl/finddomain.c (_nl_find_domain): Use strdup expansion. > * locale/loadarchive.c (_nl_load_locale_from_archive): > Use __strdup. > * locale/setlocale.c (setlocale): Likewise. > * posix/spawn_faction_addopen.c > (posix_spawn_file_actions_addopen): Likewise. > * stdlib/putenv.c (putenv): Use __strndup. > * sunrpc/svc_simple.c (__registerrpc): Use __strdup. > * sysdeps/posix/getaddrinfo.c (gaih_inet): Use __strdup/__strndup. > * include/stdlib.h (__need_malloc_and_calloc): Remove uses. > (__Need_M_And_C) Remove define/undef. > * stdlib/stdlib.h (__need_malloc_and_calloc): Remove uses. > (__malloc_and_calloc_defined): Remove define. > * string/bits/string2.h (__strdup): Remove define. > (strdup): Likewise. > (__strndup): Likewise. > (strndup): Likewise. > > --- > > diff --git a/include/stdlib.h b/include/stdlib.h > index 352339e8595eb8229018cb27f7d2decf63f511c7..929cead59ae10afe03ae1286b72d8321f0ab2d90 100644 > --- a/include/stdlib.h > +++ b/include/stdlib.h > @@ -1,16 +1,12 @@ > #ifndef _STDLIB_H > > -#ifdef __need_malloc_and_calloc > -#define __Need_M_And_C > -#endif > - > #ifndef _ISOMAC > # include <stddef.h> > #endif > #include <stdlib/stdlib.h> > > /* Now define the internal interfaces. */ > -#if !defined __Need_M_And_C && !defined _ISOMAC > +#if !defined _ISOMAC > # include <sys/stat.h> > > __BEGIN_DECLS > @@ -269,6 +265,4 @@ __END_DECLS > > #endif > > -#undef __Need_M_And_C > - > #endif /* include/stdlib.h */ > diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h > index 292c6a2f053a2a578cd09d75307c26ed191e1c00..7cfbcafe79ec1f7c9d07c464bd56b9bd964755fd 100644 > --- a/stdlib/stdlib.h > +++ b/stdlib/stdlib.h > @@ -25,16 +25,13 @@ > #include <bits/libc-header-start.h> > > /* Get size_t, wchar_t and NULL from <stddef.h>. */ > -#define __need_size_t > -#ifndef __need_malloc_and_calloc > -# define __need_wchar_t > -# define __need_NULL > -#endif > +#define __need_size_t > +#define __need_wchar_t > +#define __need_NULL > #include <stddef.h> > > __BEGIN_DECLS > > -#ifndef __need_malloc_and_calloc > #define _STDLIB_H 1 > > #if (defined __USE_XOPEN || defined __USE_XOPEN2K8) && !defined _SYS_WAIT_H > @@ -434,10 +431,6 @@ extern int lcong48_r (unsigned short int __param[7], > # endif /* Use misc. */ > #endif /* Use misc or X/Open. */ > > -#endif /* don't just need malloc and calloc */ > - > -#ifndef __malloc_and_calloc_defined > -# define __malloc_and_calloc_defined > __BEGIN_NAMESPACE_STD > /* Allocate SIZE bytes of memory. */ > extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur; > @@ -445,9 +438,7 @@ extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur; > extern void *calloc (size_t __nmemb, size_t __size) > __THROW __attribute_malloc__ __wur; > __END_NAMESPACE_STD > -#endif > > -#ifndef __need_malloc_and_calloc > __BEGIN_NAMESPACE_STD > /* Re-allocate the previously allocated block > in PTR, making the new block SIZE bytes long. */ > @@ -944,9 +935,6 @@ extern int ttyslot (void) __THROW; > # include <bits/stdlib-ldbl.h> > #endif > > -#endif /* don't just need malloc and calloc */ > -#undef __need_malloc_and_calloc > - > __END_DECLS > > #endif /* stdlib.h */ > diff --git a/string/bits/string2.h b/string/bits/string2.h > index e5337becf6fd21a7f303f4e9e8152f8571ec96b1..5d2bd0c8e2f39df6c7a407253e5995d9bb0f6cdb 100644 > --- a/string/bits/string2.h > +++ b/string/bits/string2.h > @@ -180,65 +180,6 @@ extern void *__rawmemchr (const void *__s, int __c); > #endif > > > -/* We need the memory allocation functions for inline strdup(). > - Referring to stdlib.h (even minimally) is not allowed > - in any of the tight standards compliant modes. */ > -#ifdef __USE_MISC > - > -# if !defined _HAVE_STRING_ARCH_strdup || !defined _HAVE_STRING_ARCH_strndup > -# define __need_malloc_and_calloc > -# include <stdlib.h> > -# endif > - > -# ifndef _HAVE_STRING_ARCH_strdup > - > -extern char *__strdup (const char *__string) __THROW __attribute_malloc__; > -# define __strdup(s) \ > - (__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s) \ > - ? (((const char *) (s))[0] == '\0' \ > - ? (char *) calloc ((size_t) 1, (size_t) 1) \ > - : ({ size_t __len = strlen (s) + 1; \ > - char *__retval = (char *) malloc (__len); \ > - if (__retval != NULL) \ > - __retval = (char *) memcpy (__retval, s, __len); \ > - __retval; })) \ > - : __strdup (s))) > - > -# if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 > -# define strdup(s) __strdup (s) > -# endif > -# endif > - > -# ifndef _HAVE_STRING_ARCH_strndup > - > -extern char *__strndup (const char *__string, size_t __n) > - __THROW __attribute_malloc__; > -# define __strndup(s, n) \ > - (__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s) \ > - ? (((const char *) (s))[0] == '\0' \ > - ? (char *) calloc ((size_t) 1, (size_t) 1) \ > - : ({ size_t __len = strlen (s) + 1; \ > - size_t __n = (n); \ > - char *__retval; \ > - if (__n < __len) \ > - __len = __n + 1; \ > - __retval = (char *) malloc (__len); \ > - if (__retval != NULL) \ > - { \ > - __retval[__len - 1] = '\0'; \ > - __retval = (char *) memcpy (__retval, s, \ > - __len - 1); \ > - } \ > - __retval; })) \ > - : __strndup (s, n))) > - > -# ifdef __USE_XOPEN2K8 > -# define strndup(s, n) __strndup (s, n) > -# endif > -# endif > - > -#endif /* Use misc. or use GNU. */ > - > #ifndef _FORCE_INLINES > # undef __STRING_INLINE > #endif > diff --git a/elf/dl-cache.c b/elf/dl-cache.c > index 1ac7524c3e8cc41eee0e4f20158b67f97a0f60bc..017c78aae36cd981f31b955966bb77c9b793567a 100644 > --- a/elf/dl-cache.c > +++ b/elf/dl-cache.c > @@ -302,7 +302,7 @@ _dl_load_cache_lookup (const char *name) > char *temp; > temp = alloca (strlen (best) + 1); > strcpy (temp, best); > - return strdup (temp); > + return __strdup (temp); > } > > #ifndef MAP_COPY > diff --git a/inet/rcmd.c b/inet/rcmd.c > index 8613d96764b08cc8fe3d988a0f38125a0cd54d04..b7cc7a82ba0ac1b39ccf03c589e00114b0bc79a5 100644 > --- a/inet/rcmd.c > +++ b/inet/rcmd.c > @@ -149,7 +149,7 @@ rcmd_af (char **ahost, u_short rport, const char *locuser, const char *remuser, > > if (res->ai_canonname){ > free (ahostbuf); > - ahostbuf = strdup (res->ai_canonname); > + ahostbuf = __strdup (res->ai_canonname); > if (ahostbuf == NULL) { > __fxprintf(NULL, "%s", > _("rcmd: Cannot allocate memory\n")); > diff --git a/inet/rexec.c b/inet/rexec.c > index 24ac4b11b6d745aa53a80bd0f7bd10924246b526..43fb67bcf2c6d4fdff9e8dcd053786ab523f7aa1 100644 > --- a/inet/rexec.c > +++ b/inet/rexec.c > @@ -73,7 +73,7 @@ rexec_af (char **ahost, int rport, const char *name, const char *pass, > > if (res0->ai_canonname){ > free (ahostbuf); > - ahostbuf = strdup (res0->ai_canonname); > + ahostbuf = __strdup (res0->ai_canonname); > if (ahostbuf == NULL) { > perror ("rexec: strdup"); > return (-1); > diff --git a/intl/dcigettext.c b/intl/dcigettext.c > index 95fa72b1c548ee66d9771eac86488f7f034a0c89..2c7358796eb7853f31773ad8f5e6b89ee94ec5db 100644 > --- a/intl/dcigettext.c > +++ b/intl/dcigettext.c > @@ -131,6 +131,9 @@ extern int errno; > /* Rename the non ANSI C functions. This is required by the standard > because some ANSI C functions will require linking with this object > file and the name space must not be polluted. */ > +# ifndef strdup > +# define strdup __strdup > +# endif > # define getcwd __getcwd > # ifndef stpcpy > # define stpcpy __stpcpy > diff --git a/intl/finddomain.c b/intl/finddomain.c > index cb61a0c8d6b90023847ef0cc609524a0c0a070a0..88fd880dbcc3e21cd4975306f1196a906116d1cc 100644 > --- a/intl/finddomain.c > +++ b/intl/finddomain.c > @@ -124,18 +124,12 @@ _nl_find_domain (const char *dirname, char *locale, > alias_value = _nl_expand_alias (locale); > if (alias_value != NULL) > { > -#if defined _LIBC || defined HAVE_STRDUP > - locale = strdup (alias_value); > - if (locale == NULL) > - return NULL; > -#else > size_t len = strlen (alias_value) + 1; > locale = (char *) malloc (len); > if (locale == NULL) > return NULL; > > memcpy (locale, alias_value, len); > -#endif > } > > /* Now we determine the single parts of the locale name. First > diff --git a/locale/loadarchive.c b/locale/loadarchive.c > index fc6fb32a9d706c0501f83b166d3aa73a19c9c58f..e6e1a05d2e7b74abf81d136760f0c42d58744f57 100644 > --- a/locale/loadarchive.c > +++ b/locale/loadarchive.c > @@ -462,7 +462,7 @@ _nl_load_locale_from_archive (int category, const char **namep) > if (__glibc_unlikely (lia == NULL)) > return NULL; > > - lia->name = strdup (*namep); > + lia->name = __strdup (*namep); > if (__glibc_unlikely (lia->name == NULL)) > { > free (lia); > diff --git a/locale/setlocale.c b/locale/setlocale.c > index 1603ef306a51a8fe9368a617eae67310b77ffb0f..19acc4b2c7173ece3b235f289c57c4c74f3da5cc 100644 > --- a/locale/setlocale.c > +++ b/locale/setlocale.c > @@ -283,7 +283,7 @@ setlocale (int category, const char *locale) > if (__glibc_unlikely (strchr (locale, ';') != NULL)) > { > /* This is a composite name. Make a copy and split it up. */ > - locale_copy = strdup (locale); > + locale_copy = __strdup (locale); > if (__glibc_unlikely (locale_copy == NULL)) > { > __libc_rwlock_unlock (__libc_setlocale_lock); > diff --git a/posix/spawn_faction_addopen.c b/posix/spawn_faction_addopen.c > index 95111684bc4ea2f5dd82cc8287cc9ba0db6d9cb1..cbb3584345374e19b37560e4081c618bbb76d707 100644 > --- a/posix/spawn_faction_addopen.c > +++ b/posix/spawn_faction_addopen.c > @@ -34,7 +34,7 @@ posix_spawn_file_actions_addopen (posix_spawn_file_actions_t *file_actions, > if (!__spawn_valid_fd (fd)) > return EBADF; > > - char *path_copy = strdup (path); > + char *path_copy = __strdup (path); > if (path_copy == NULL) > return ENOMEM; > > diff --git a/stdlib/putenv.c b/stdlib/putenv.c > index 85890fec264cda0f7d1f6e4bc411b6e2f95af048..c0488fc50558ef2fc2878cdbe436e76276fa3898 100644 > --- a/stdlib/putenv.c > +++ b/stdlib/putenv.c > @@ -60,7 +60,7 @@ putenv (char *string) > int use_malloc = !__libc_use_alloca (name_end - string + 1); > if (__builtin_expect (use_malloc, 0)) > { > - name = strndup (string, name_end - string); > + name = __strndup (string, name_end - string); > if (name == NULL) > return -1; > } > diff --git a/sunrpc/svc_simple.c b/sunrpc/svc_simple.c > index baa177eec0f1fea3306e056033be29cee42fe132..acc9b9db14fa24b4b04e4ddca7d10980e661fe88 100644 > --- a/sunrpc/svc_simple.c > +++ b/sunrpc/svc_simple.c > @@ -87,7 +87,7 @@ __registerrpc (u_long prognum, u_long versnum, u_long procnum, > transp = svcudp_create (RPC_ANYSOCK); > if (transp == NULL) > { > - buf = strdup (_("couldn't create an rpc server\n")); > + buf = __strdup (_("couldn't create an rpc server\n")); > goto err_out; > } > } > @@ -103,7 +103,7 @@ __registerrpc (u_long prognum, u_long versnum, u_long procnum, > pl = (struct proglst_ *) malloc (sizeof (struct proglst_)); > if (pl == NULL) > { > - buf = strdup (_("registerrpc: out of memory\n")); > + buf = __strdup (_("registerrpc: out of memory\n")); > goto err_out; > } > pl->p_progname = progname; > diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c > index 43eb31365ed10059bb6e1147af197ed54550e6c5..eed7264850307b6b65b055a6936dc6362d5b3ff9 100644 > --- a/sysdeps/posix/getaddrinfo.c > +++ b/sysdeps/posix/getaddrinfo.c > @@ -536,7 +536,7 @@ gaih_inet (const char *name, const struct gaih_service *service, > } > else > { > - namebuf = strndup (name, scope_delim - name); > + namebuf = __strndup (name, scope_delim - name); > if (namebuf == NULL) > { > assert (!malloc_name); > @@ -1141,7 +1141,7 @@ gaih_inet (const char *name, const struct gaih_service *service, > malloc_canonbuf = false; > else > { > - canon = strdup (canon); > + canon = __strdup (canon); > if (canon == NULL) > { > result = -EAI_MEMORY; > > >
diff --git a/include/stdlib.h b/include/stdlib.h index 352339e8595eb8229018cb27f7d2decf63f511c7..929cead59ae10afe03ae1286b72d8321f0ab2d90 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -1,16 +1,12 @@ #ifndef _STDLIB_H -#ifdef __need_malloc_and_calloc -#define __Need_M_And_C -#endif - #ifndef _ISOMAC # include <stddef.h> #endif #include <stdlib/stdlib.h> /* Now define the internal interfaces. */ -#if !defined __Need_M_And_C && !defined _ISOMAC +#if !defined _ISOMAC # include <sys/stat.h> __BEGIN_DECLS @@ -269,6 +265,4 @@ __END_DECLS #endif -#undef __Need_M_And_C - #endif /* include/stdlib.h */ diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h index 292c6a2f053a2a578cd09d75307c26ed191e1c00..7cfbcafe79ec1f7c9d07c464bd56b9bd964755fd 100644 --- a/stdlib/stdlib.h +++ b/stdlib/stdlib.h @@ -25,16 +25,13 @@ #include <bits/libc-header-start.h> /* Get size_t, wchar_t and NULL from <stddef.h>. */ -#define __need_size_t -#ifndef __need_malloc_and_calloc -# define __need_wchar_t -# define __need_NULL -#endif +#define __need_size_t +#define __need_wchar_t +#define __need_NULL #include <stddef.h> __BEGIN_DECLS -#ifndef __need_malloc_and_calloc #define _STDLIB_H 1 #if (defined __USE_XOPEN || defined __USE_XOPEN2K8) && !defined _SYS_WAIT_H @@ -434,10 +431,6 @@ extern int lcong48_r (unsigned short int __param[7], # endif /* Use misc. */ #endif /* Use misc or X/Open. */ -#endif /* don't just need malloc and calloc */ - -#ifndef __malloc_and_calloc_defined -# define __malloc_and_calloc_defined __BEGIN_NAMESPACE_STD /* Allocate SIZE bytes of memory. */ extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur; @@ -445,9 +438,7 @@ extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur; extern void *calloc (size_t __nmemb, size_t __size) __THROW __attribute_malloc__ __wur; __END_NAMESPACE_STD -#endif -#ifndef __need_malloc_and_calloc __BEGIN_NAMESPACE_STD /* Re-allocate the previously allocated block in PTR, making the new block SIZE bytes long. */ @@ -944,9 +935,6 @@ extern int ttyslot (void) __THROW; # include <bits/stdlib-ldbl.h> #endif -#endif /* don't just need malloc and calloc */ -#undef __need_malloc_and_calloc - __END_DECLS #endif /* stdlib.h */ diff --git a/string/bits/string2.h b/string/bits/string2.h index e5337becf6fd21a7f303f4e9e8152f8571ec96b1..5d2bd0c8e2f39df6c7a407253e5995d9bb0f6cdb 100644 --- a/string/bits/string2.h +++ b/string/bits/string2.h @@ -180,65 +180,6 @@ extern void *__rawmemchr (const void *__s, int __c); #endif -/* We need the memory allocation functions for inline strdup(). - Referring to stdlib.h (even minimally) is not allowed - in any of the tight standards compliant modes. */ -#ifdef __USE_MISC - -# if !defined _HAVE_STRING_ARCH_strdup || !defined _HAVE_STRING_ARCH_strndup -# define __need_malloc_and_calloc -# include <stdlib.h> -# endif - -# ifndef _HAVE_STRING_ARCH_strdup - -extern char *__strdup (const char *__string) __THROW __attribute_malloc__; -# define __strdup(s) \ - (__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s) \ - ? (((const char *) (s))[0] == '\0' \ - ? (char *) calloc ((size_t) 1, (size_t) 1) \ - : ({ size_t __len = strlen (s) + 1; \ - char *__retval = (char *) malloc (__len); \ - if (__retval != NULL) \ - __retval = (char *) memcpy (__retval, s, __len); \ - __retval; })) \ - : __strdup (s))) - -# if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 -# define strdup(s) __strdup (s) -# endif -# endif - -# ifndef _HAVE_STRING_ARCH_strndup - -extern char *__strndup (const char *__string, size_t __n) - __THROW __attribute_malloc__; -# define __strndup(s, n) \ - (__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s) \ - ? (((const char *) (s))[0] == '\0' \ - ? (char *) calloc ((size_t) 1, (size_t) 1) \ - : ({ size_t __len = strlen (s) + 1; \ - size_t __n = (n); \ - char *__retval; \ - if (__n < __len) \ - __len = __n + 1; \ - __retval = (char *) malloc (__len); \ - if (__retval != NULL) \ - { \ - __retval[__len - 1] = '\0'; \ - __retval = (char *) memcpy (__retval, s, \ - __len - 1); \ - } \ - __retval; })) \ - : __strndup (s, n))) - -# ifdef __USE_XOPEN2K8 -# define strndup(s, n) __strndup (s, n) -# endif -# endif - -#endif /* Use misc. or use GNU. */ - #ifndef _FORCE_INLINES # undef __STRING_INLINE #endif diff --git a/elf/dl-cache.c b/elf/dl-cache.c index 1ac7524c3e8cc41eee0e4f20158b67f97a0f60bc..017c78aae36cd981f31b955966bb77c9b793567a 100644 --- a/elf/dl-cache.c +++ b/elf/dl-cache.c @@ -302,7 +302,7 @@ _dl_load_cache_lookup (const char *name) char *temp; temp = alloca (strlen (best) + 1); strcpy (temp, best); - return strdup (temp); + return __strdup (temp); } #ifndef MAP_COPY diff --git a/inet/rcmd.c b/inet/rcmd.c index 8613d96764b08cc8fe3d988a0f38125a0cd54d04..b7cc7a82ba0ac1b39ccf03c589e00114b0bc79a5 100644 --- a/inet/rcmd.c +++ b/inet/rcmd.c @@ -149,7 +149,7 @@ rcmd_af (char **ahost, u_short rport, const char *locuser, const char *remuser, if (res->ai_canonname){ free (ahostbuf); - ahostbuf = strdup (res->ai_canonname); + ahostbuf = __strdup (res->ai_canonname); if (ahostbuf == NULL) { __fxprintf(NULL, "%s", _("rcmd: Cannot allocate memory\n")); diff --git a/inet/rexec.c b/inet/rexec.c index 24ac4b11b6d745aa53a80bd0f7bd10924246b526..43fb67bcf2c6d4fdff9e8dcd053786ab523f7aa1 100644 --- a/inet/rexec.c +++ b/inet/rexec.c @@ -73,7 +73,7 @@ rexec_af (char **ahost, int rport, const char *name, const char *pass, if (res0->ai_canonname){ free (ahostbuf); - ahostbuf = strdup (res0->ai_canonname); + ahostbuf = __strdup (res0->ai_canonname); if (ahostbuf == NULL) { perror ("rexec: strdup"); return (-1); diff --git a/intl/dcigettext.c b/intl/dcigettext.c index 95fa72b1c548ee66d9771eac86488f7f034a0c89..2c7358796eb7853f31773ad8f5e6b89ee94ec5db 100644 --- a/intl/dcigettext.c +++ b/intl/dcigettext.c @@ -131,6 +131,9 @@ extern int errno; /* Rename the non ANSI C functions. This is required by the standard because some ANSI C functions will require linking with this object file and the name space must not be polluted. */ +# ifndef strdup +# define strdup __strdup +# endif # define getcwd __getcwd # ifndef stpcpy # define stpcpy __stpcpy diff --git a/intl/finddomain.c b/intl/finddomain.c index cb61a0c8d6b90023847ef0cc609524a0c0a070a0..88fd880dbcc3e21cd4975306f1196a906116d1cc 100644 --- a/intl/finddomain.c +++ b/intl/finddomain.c @@ -124,18 +124,12 @@ _nl_find_domain (const char *dirname, char *locale, alias_value = _nl_expand_alias (locale); if (alias_value != NULL) { -#if defined _LIBC || defined HAVE_STRDUP - locale = strdup (alias_value); - if (locale == NULL) - return NULL; -#else size_t len = strlen (alias_value) + 1; locale = (char *) malloc (len); if (locale == NULL) return NULL; memcpy (locale, alias_value, len); -#endif } /* Now we determine the single parts of the locale name. First diff --git a/locale/loadarchive.c b/locale/loadarchive.c index fc6fb32a9d706c0501f83b166d3aa73a19c9c58f..e6e1a05d2e7b74abf81d136760f0c42d58744f57 100644 --- a/locale/loadarchive.c +++ b/locale/loadarchive.c @@ -462,7 +462,7 @@ _nl_load_locale_from_archive (int category, const char **namep) if (__glibc_unlikely (lia == NULL)) return NULL; - lia->name = strdup (*namep); + lia->name = __strdup (*namep); if (__glibc_unlikely (lia->name == NULL)) { free (lia); diff --git a/locale/setlocale.c b/locale/setlocale.c index 1603ef306a51a8fe9368a617eae67310b77ffb0f..19acc4b2c7173ece3b235f289c57c4c74f3da5cc 100644 --- a/locale/setlocale.c +++ b/locale/setlocale.c @@ -283,7 +283,7 @@ setlocale (int category, const char *locale) if (__glibc_unlikely (strchr (locale, ';') != NULL)) { /* This is a composite name. Make a copy and split it up. */ - locale_copy = strdup (locale); + locale_copy = __strdup (locale); if (__glibc_unlikely (locale_copy == NULL)) { __libc_rwlock_unlock (__libc_setlocale_lock); diff --git a/posix/spawn_faction_addopen.c b/posix/spawn_faction_addopen.c index 95111684bc4ea2f5dd82cc8287cc9ba0db6d9cb1..cbb3584345374e19b37560e4081c618bbb76d707 100644 --- a/posix/spawn_faction_addopen.c +++ b/posix/spawn_faction_addopen.c @@ -34,7 +34,7 @@ posix_spawn_file_actions_addopen (posix_spawn_file_actions_t *file_actions, if (!__spawn_valid_fd (fd)) return EBADF; - char *path_copy = strdup (path); + char *path_copy = __strdup (path); if (path_copy == NULL) return ENOMEM; diff --git a/stdlib/putenv.c b/stdlib/putenv.c index 85890fec264cda0f7d1f6e4bc411b6e2f95af048..c0488fc50558ef2fc2878cdbe436e76276fa3898 100644 --- a/stdlib/putenv.c +++ b/stdlib/putenv.c @@ -60,7 +60,7 @@ putenv (char *string) int use_malloc = !__libc_use_alloca (name_end - string + 1); if (__builtin_expect (use_malloc, 0)) { - name = strndup (string, name_end - string); + name = __strndup (string, name_end - string); if (name == NULL) return -1; } diff --git a/sunrpc/svc_simple.c b/sunrpc/svc_simple.c index baa177eec0f1fea3306e056033be29cee42fe132..acc9b9db14fa24b4b04e4ddca7d10980e661fe88 100644 --- a/sunrpc/svc_simple.c +++ b/sunrpc/svc_simple.c @@ -87,7 +87,7 @@ __registerrpc (u_long prognum, u_long versnum, u_long procnum, transp = svcudp_create (RPC_ANYSOCK); if (transp == NULL) { - buf = strdup (_("couldn't create an rpc server\n")); + buf = __strdup (_("couldn't create an rpc server\n")); goto err_out; } } @@ -103,7 +103,7 @@ __registerrpc (u_long prognum, u_long versnum, u_long procnum, pl = (struct proglst_ *) malloc (sizeof (struct proglst_)); if (pl == NULL) { - buf = strdup (_("registerrpc: out of memory\n")); + buf = __strdup (_("registerrpc: out of memory\n")); goto err_out; } pl->p_progname = progname; diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 43eb31365ed10059bb6e1147af197ed54550e6c5..eed7264850307b6b65b055a6936dc6362d5b3ff9 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -536,7 +536,7 @@ gaih_inet (const char *name, const struct gaih_service *service, } else { - namebuf = strndup (name, scope_delim - name); + namebuf = __strndup (name, scope_delim - name); if (namebuf == NULL) { assert (!malloc_name); @@ -1141,7 +1141,7 @@ gaih_inet (const char *name, const struct gaih_service *service, malloc_canonbuf = false; else { - canon = strdup (canon); + canon = __strdup (canon); if (canon == NULL) { result = -EAI_MEMORY;