Casting a pointer to Elf32_Addr type will discard 32 bits from the
pointer address.  Using unsigned long ensures that a pointer is 64-bit
safe.

Signed-off-by: William Pitcock <[email protected]>
---
 ldso/libdl/libdl.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c
index c164ffb..12eb311 100644
--- a/ldso/libdl/libdl.c
+++ b/ldso/libdl/libdl.c
@@ -715,7 +715,7 @@ void *dlsym(void *vhandle, const char *name)
        if (sym_ref.sym && (ELF_ST_TYPE(sym_ref.sym->st_info) == STT_TLS) && 
(sym_ref.tpnt)) {
                /* The found symbol is a thread-local storage variable.
                Return its address for the current thread.  */
-               ret = _dl_tls_symaddr ((struct link_map *)sym_ref.tpnt, 
(Elf32_Addr)ret);
+               ret = _dl_tls_symaddr ((struct link_map *)sym_ref.tpnt, 
(unsigned long) ret);
        }
 #endif
 
-- 
1.7.7.1

_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to