From 42fa1f67d40b121d4e7d12d442e095fb519cc789 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 1 Aug 2008 18:03:57 +0000 Subject: [PATCH] * sysdeps/unix/sysv/linux/dl-origin.c (_dl_get_origin): We cannot use the AT_EXECFN value if it is no absolute path. * sysdeps/unix/sysv/linux/kernel-features.h: Never define __ASSUME_AT_EXECFN. --- ChangeLog | 5 +++++ sysdeps/unix/sysv/linux/dl-origin.c | 10 +++------- sysdeps/unix/sysv/linux/kernel-features.h | 5 ----- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2e5944ba88..838509174b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2008-08-01 Ulrich Drepper + * sysdeps/unix/sysv/linux/dl-origin.c (_dl_get_origin): We cannot + use the AT_EXECFN value if it is no absolute path. + * sysdeps/unix/sysv/linux/kernel-features.h: Never define + __ASSUME_AT_EXECFN. + * Versions.def: Add GLIBC_2.9 to libresolv. * include/resolv.h: Remove hidden proto declarations for __ns_* functions. Add them for __dn_count_labels and __p_secstodate. diff --git a/sysdeps/unix/sysv/linux/dl-origin.c b/sysdeps/unix/sysv/linux/dl-origin.c index fdb6372f09..64e865b92a 100644 --- a/sysdeps/unix/sysv/linux/dl-origin.c +++ b/sysdeps/unix/sysv/linux/dl-origin.c @@ -35,16 +35,13 @@ const char * _dl_get_origin (void) { -#ifndef __ASSUME_AT_EXECFN char linkval[PATH_MAX]; -#endif const char *str; char *result = (char *) -1l; int len; str = GLRO(dl_execfn); -#ifndef __ASSUME_AT_EXECFN - if (str == NULL) + if (str == NULL || str[0] != '/') { INTERNAL_SYSCALL_DECL (err); @@ -53,12 +50,12 @@ _dl_get_origin (void) if (! INTERNAL_SYSCALL_ERROR_P (len, err) && len > 0 && linkval[0] != '[') str = linkval; + else + str = NULL; } else -#endif len = strlen (str); -#ifndef __ASSUME_AT_EXECFN if (str == NULL) { /* We use the environment variable LD_ORIGIN_PATH. If it is set make @@ -79,7 +76,6 @@ _dl_get_origin (void) } } else -#endif { /* We can use this value. */ assert (str[0] == '/'); diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h index e0d80a5b06..64a7f72230 100644 --- a/sysdeps/unix/sysv/linux/kernel-features.h +++ b/sysdeps/unix/sysv/linux/kernel-features.h @@ -501,11 +501,6 @@ # define __ASSUME_ADJ_OFFSET_SS_READ 1 #endif -/* Support for AT_EXECFN was added in 2.6.27. */ -#if __LINUX_KERNEL_VERSION >= 0x02061b -# define __ASSUME_AT_EXECFN 1 -#endif - /* Support for various CLOEXEC and NONBLOCK flags was added for x86, x86-64, PPC, IA-64, and SPARC in 2.6.27. */ #if __LINUX_KERNEL_VERSION >= 0x02061b \ -- 2.11.4.GIT