diff --git a/ChangeLog b/ChangeLog index c39a2f1035..8b8f6cca9a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2000-08-31 Ulrich Drepper + + * malloc/malloc.c (ptmalloc_init): Optimize a bit by not calling + __secure_getenv. Instead test __libc_enable_secure once. + + * io/pwd.c (main): Provide a good example, use *_unlocked function. + 2000-08-30 Ulrich Drepper * iconv/gconv_conf.c (insert_module): Take extra parameter to decide diff --git a/io/pwd.c b/io/pwd.c index c4d3a5f62c..006f1d306f 100644 --- a/io/pwd.c +++ b/io/pwd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1997, 1998, 2000 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 @@ -35,7 +35,7 @@ main (void) perror ("getcwd"); else { - puts (dir); + fputs_unlocked (dir, stdout); free (dir); } diff --git a/malloc/malloc.c b/malloc/malloc.c index 6db66298bc..46a4db221d 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -314,10 +314,6 @@ extern char* getenv(); # endif #endif -#ifndef _LIBC -# define __secure_getenv(Str) getenv (Str) -#endif - /* Macros for handling mutexes and thread-specific data. This is included early, because some thread-related header files (such as pthread.h) should be included before any others. */ @@ -1680,6 +1676,7 @@ ptmalloc_init __MALLOC_P((void)) char* s; # endif #endif + int secure; if(__malloc_initialized >= 0) return; __malloc_initialized = 0; @@ -1708,20 +1705,24 @@ ptmalloc_init __MALLOC_P((void)) tsd_setspecific(arena_key, (Void_t *)&main_arena); thread_atfork(ptmalloc_lock_all, ptmalloc_unlock_all, ptmalloc_init_all); #if defined _LIBC || defined MALLOC_HOOKS - if((s = __secure_getenv("MALLOC_TRIM_THRESHOLD_"))) - mALLOPt(M_TRIM_THRESHOLD, atoi(s)); - if((s = __secure_getenv("MALLOC_TOP_PAD_"))) - mALLOPt(M_TOP_PAD, atoi(s)); - if((s = __secure_getenv("MALLOC_MMAP_THRESHOLD_"))) - mALLOPt(M_MMAP_THRESHOLD, atoi(s)); - if((s = __secure_getenv("MALLOC_MMAP_MAX_"))) - mALLOPt(M_MMAP_MAX, atoi(s)); - s = getenv("MALLOC_CHECK_"); #ifndef NO_THREADS __malloc_hook = save_malloc_hook; __free_hook = save_free_hook; #endif - if(s && (! __libc_enable_secure || access ("/etc/suid-debug", F_OK) == 0)) { + secure = __libc_enable_secure; + if (! secure) + { + if((s = getenv("MALLOC_TRIM_THRESHOLD_"))) + mALLOPt(M_TRIM_THRESHOLD, atoi(s)); + if((s = getenv("MALLOC_TOP_PAD_"))) + mALLOPt(M_TOP_PAD, atoi(s)); + if((s = getenv("MALLOC_MMAP_THRESHOLD_"))) + mALLOPt(M_MMAP_THRESHOLD, atoi(s)); + if((s = getenv("MALLOC_MMAP_MAX_"))) + mALLOPt(M_MMAP_MAX, atoi(s)); + } + s = getenv("MALLOC_CHECK_"); + if(s && (! secure || access ("/etc/suid-debug", F_OK) == 0)) { if(s[0]) mALLOPt(M_CHECK_ACTION, (int)(s[0] - '0')); __malloc_check_init(); }