diff options
author | Ulrich Drepper <drepper@redhat.com> | 2001-11-06 00:16:32 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2001-11-06 00:16:32 +0000 |
commit | c95f3fd42ed8d7660e817cf74b0883d7563d8102 (patch) | |
tree | 1395eae94b48080a50cbefa142906ce445fdae7f /sysdeps | |
parent | ea41b9267dbd64faec6630e45fac87afb663ec11 (diff) | |
download | glibc-c95f3fd42ed8d7660e817cf74b0883d7563d8102.tar glibc-c95f3fd42ed8d7660e817cf74b0883d7563d8102.tar.gz glibc-c95f3fd42ed8d7660e817cf74b0883d7563d8102.tar.bz2 glibc-c95f3fd42ed8d7660e817cf74b0883d7563d8102.zip |
Update.
* elf/elf.h: Add dynamic tag definitions for prelinking.
* elf/rtld.c (process_envvars): Avoid using array of string pointers.
Rewrite code to remove environment varables for SUID binaries.
Small optimization in LD_PROFILE handling.
* sysdeps/generic/unsecvars.h: Adjust format for process_envvars
changes.
* sysdeps/unix/sysv/linux/i386/dl-librecon.h: Likewise.
* sysdeps/generic/dl-sysdep.c: Don't initialize _dl_cpuclock_offset.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/dl-sysdep.c | 2 | ||||
-rw-r--r-- | sysdeps/generic/unsecvars.h | 29 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/dl-librecon.h | 9 |
3 files changed, 25 insertions, 15 deletions
diff --git a/sysdeps/generic/dl-sysdep.c b/sysdeps/generic/dl-sysdep.c index c89ab3c1fb..8d182be9e9 100644 --- a/sysdeps/generic/dl-sysdep.c +++ b/sysdeps/generic/dl-sysdep.c @@ -63,7 +63,7 @@ void *__libc_stack_end; static ElfW(auxv_t) *_dl_auxv; unsigned long int _dl_hwcap_mask = HWCAP_IMPORTANT; #if HP_TIMING_AVAIL -hp_timing_t _dl_cpuclock_offset = 0; +hp_timing_t _dl_cpuclock_offset; #endif #ifndef DL_FIND_ARG_COMPONENTS diff --git a/sysdeps/generic/unsecvars.h b/sysdeps/generic/unsecvars.h index cd08bb8a0d..efb9515951 100644 --- a/sysdeps/generic/unsecvars.h +++ b/sysdeps/generic/unsecvars.h @@ -1,12 +1,19 @@ -/* Environment variable to be removed for SUID programs. */ +/* Environment variable to be removed for SUID programs. The names are + all stuffed in a single string which means they have to be terminated + with a '\0' explicitly. */ #define UNSECURE_ENVVARS \ - "GCONV_PATH", \ - "HOSTALIASES", \ - "LOCALDOMAIN", \ - "LOCPATH", \ - "MALLOC_TRACE", \ - "NLSPATH", \ - "RESOLV_HOST_CONF", \ - "RES_OPTIONS", \ - "TMPDIR", \ - "TZDIR" + "LD_PRELOAD\0" \ + "LD_LIBRARY_PATH\0" \ + "LD_ORIGIN_PATH\0" \ + "LD_DEBUG_OUTPUT\0" \ + "LD_PROFILE\0" \ + "GCONV_PATH\0" \ + "HOSTALIASES\0" \ + "LOCALDOMAIN\0" \ + "LOCPATH\0" \ + "MALLOC_TRACE\0" \ + "NLSPATH\0" \ + "RESOLV_HOST_CONF\0" \ + "RES_OPTIONS\0" \ + "TMPDIR\0" \ + "TZDIR\0" diff --git a/sysdeps/unix/sysv/linux/i386/dl-librecon.h b/sysdeps/unix/sysv/linux/i386/dl-librecon.h index acff7fc14f..3e39a32e69 100644 --- a/sysdeps/unix/sysv/linux/i386/dl-librecon.h +++ b/sysdeps/unix/sysv/linux/i386/dl-librecon.h @@ -72,13 +72,16 @@ } \ \ case 15: \ - if (memcmp (envline, "LIBRARY_VERSION", 15) == 0) \ + if (memcmp (envline, "LIBRARY_VERSION", 15) == 0) \ { \ _dl_correct_cache_id = envline[16] == '5' ? 2 : 3; \ break; \ } -/* Extra unsecure variables. */ -#define EXTRA_UNSECURE_ENVVARS "LD_AOUT_LIBRARY_PATH", "LD_AOUT_PRELOAD" +/* Extra unsecure variables. The names are all stuffed in a single + string which means they have to be terminated with a '\0' explicitly. */ +#define EXTRA_UNSECURE_ENVVARS \ + "LD_AOUT_LIBRARY_PATH\0" \ + "LD_AOUT_PRELOAD\0" #endif /* dl-librecon.h */ |