summaryrefslogtreecommitdiffstats
path: root/libexec/rtld-elf
Commit message (Collapse)AuthorAgeFilesLines
* Update the man page to reflect that certain variables will be unset incsjp2007-05-171-2/+4
| | | | | the case that the program is set-user-ID or set-group-ID. Add missing annotations for LIBMAP and LIBMAP_DISABLE.
* In the event a process is tainted (setuid/setgid binaries), un-set anycsjp2007-05-171-10/+20
| | | | | | | | | | | | | | | | | | | | potentially dangerous environment variables all together. It should be noted that the run-time linker will not honnor these environment variables if the process is tainted currently. However, once a child of the tainted process calls setuid(2), it's status as being tainted (as defined by issetugid(2)) will be removed. This could be problematic because subsequent activations of the run-time linker could honnor these dangerous variables. This is more of an anti foot-shot mechanism, there is nothing I am aware of in base that does this, however there may be third party utilities which do, and there is no real negative impact of clearing these environment variables. Discussed on: secteam Reviewed by: cperciva PR: kern/109836 MFC after: 2 weeks
* Don't enable symbol versioning on ia64 for now. It causesmarcel2007-05-161-0/+2
| | | | | | | symbol lookup failures that later result in null-pointer dereferences. This needs looking into, but since we're close to release it's possible that it's not resolved before that time.
* We don't need --export-dynamic for ld-elf.so.1, because it's amarcel2007-05-161-1/+0
| | | | shared object.
* Enable symbol versioning by default. Use WITHOUT_SYMVER to disable it.deischen2007-05-131-1/+3
| | | | | | | | | | Warning, after symbol versioning is enabled, going back is not easy (use WITHOUT_SYMVER at your own risk). Change the default thread library to libthr. There most likely still needs to be a version bump for at least the thread libraries. If necessary, this will happen later.
* Remove %m formatter, it's ifdef 0'ed in the code from the very beginningpav2007-05-121-2/+0
| | | | MFC after: 1 week
* Expand documentation for LD_TRACE_LOADED_OBJECTS_FMT? variablespav2007-05-121-0/+6
| | | | | | PR: docs/66265 (inspired by) Submitted by: Michel Lavondes <fox@vader.aacc.cc.md.us> MFC after: 1 week
* Fix a TLS memory leak.davidxu2007-05-051-0/+1
| | | | | PR: threads/112297 MFC: 1 week
* Catch up with the private namespace change (s/FBSDprivate/FBSDprivate_1.0).deischen2007-05-011-1/+1
|
* Retire rtld-specific Versions.def. Symbols exported by rtld are supposedkan2007-04-292-9/+3
| | | | | | | to override weak symbols exported by libc, so by definition these two are using the same symbol version names. Reflect the reality by referring to libc's Versions.def directly.
* Give the private version namespace a number to match libc.deischen2007-04-291-1/+1
|
* Use C comments since we now preprocess these files with CPP.deischen2007-04-292-2/+6
|
* Bring rtld exports in line with corresponding symbols exported fromkan2007-04-093-2/+8
| | | | | | | libc. Disable SYMVER_DEFAULT n rtld until its implications are understood better.
* Remove reference to FBSDprivate version. We do not use it in thiskan2007-04-071-7/+0
| | | | module yet.
* Catch up on rtld's special status. Since it does not appear onkan2007-04-071-0/+2
| | | | | | | | main object list, its versioning information needs to be examined separately. This hopefully fixes problems that people running with SYMVER_ENABLED are experiencing.
* Prepare rtld for symbol versioning. Disable it by default for now.kan2007-04-034-22/+50
|
* Implement dl_iterate_phdr function.kan2007-04-033-21/+80
| | | | | Convert boolean flags in internal Obj_Entry structure into bitfields. Properly check for loaded segment alignment in map_object.
* Use u_int for variable manipulated by atomic ops to match atomickan2007-04-031-1/+1
| | | | ops function prototypes.
* Document LD_UTRACE.jhb2007-01-231-2/+7
| | | | MFC after: 3 days
* Add various utrace's for use with ktrace to the ELF runtime linker. Tojhb2007-01-091-0/+67
| | | | | | | | activate the traces, set the LD_UTRACE (or LD_32_UTRACE) environment variable. This also includes code in kdump(8) to parse the traces. Reviewed by: kan, jdp MFC after: 2 weeks
* Fix TLS on sparc64 for statically and dynamically linked binarieskmacy2006-10-081-2/+3
| | | | | Approved by: rwatson (mentor) Reviewed by: jmg and marcel
* Clean up white spaces and fix style(9).jkim2006-09-191-34/+32
|
* Fix the buggy rev. 1.117. dagmembers are only initialized for dlopen'edkib2006-09-191-5/+63
| | | | | | | | | | | | | dso that are actually loading. If dso a.so depends on b.so, then dlsym with handle from dlopen("b.so") will fail unconditionally. Correct implementation shall use the Obj_Entry.needed list to walk dependencies DAG. Test provided by: jkim Tested (prev. version) by: jkim, Nicolas Blais <nb_root at videotron ca>, h.blanke at chello nl Pointy hat to: kib Approved by: kan (mentor)
* Markup fixes.ru2006-09-171-2/+4
|
* When looking up the symbol by dlsym, look it not only in the objectkib2006-09-081-13/+10
| | | | | | | | | | given as dso handle, but also in the implicit dependencies of that dso. Also, const-ify the read-only parameter objlist of symlook_list. Reported by: "Simon 'corecode' Schubert" <corecode at fs ei tum de> Approved by: kan (mentor) X-MFC-After: 6.2
* Fix the variant I allocation for KSE: Allow a larger TCB and assumemarcel2006-09-011-51/+37
| | | | | that the documented TCB is at the tail of the extended TCB. In other words, the base of the TCB has a negative offset from the TLS.
* o Fix the static TLS relocation. We were subtracting the size ofmarcel2006-09-011-2/+2
| | | | | | the TCB. o Use NULL for null pointer argument. o Replace magic 8 with TLS_TCB_SIZE.
* Use NULL for null-pointer argument.marcel2006-09-011-1/+1
|
* Replace magic 16 with TLS_TCB_SIZE.marcel2006-08-312-2/+4
|
* Prevent dead code elimination for the TP assignmient by using inlinemarcel2006-08-301-2/+3
| | | | assembly.
* Remove alpha left-overs.ru2006-08-225-959/+0
|
* In symlook_obj(): fix _rtld_error output.delphij2006-08-041-2/+2
| | | | MFC After: 2 weeks
* *thwack*! all the world's not i386.des2006-03-291-0/+2
| | | | Pointy hat to: des
* Don't use dbg if it isn't defined (such as when this file is used bydes2006-03-281-0/+2
| | | | code outside of rtld-elf)
* Use C99's varadic macro syntax instead of gcc's.des2006-03-281-2/+2
|
* Er, forgot to clear tls space to zero for Variant II.davidxu2006-03-281-1/+1
|
* Allocate space for thread pointer, this allows thread library to accessdavidxu2006-03-284-4/+4
| | | | its pointer from begin, and simplifies _get_curthread() in libthr.
* - Document LD_32_* environment variablespav2006-03-271-2/+9
| | | | | | - Mention 32-bit files in FILES section MFC after: 1 week
* Fix a malloc overrun in 32-bit compat libmap lookup code.peter2006-01-311-6/+4
|
* s/DT_IA64_PLT_RESERVE/DT_IA_64_PLT_RESERVE/marcel2006-01-281-3/+3
|
* s/R_IA64_/R_IA_64_/marcel2006-01-281-6/+6
|
* s/R_IA64_/R_IA_64_/g as per the ia64 psABI.marcel2006-01-171-11/+11
|
* In preparation for a new malloc implementation:jasone2006-01-121-0/+16
| | | | | | | | | | | | | * Add posix_memalign(). * Move calloc() from calloc.c to malloc.c. Add a calloc() implementation in rtld-elf in order to make the loader happy (even though calloc() isn't used in rtld-elf). * Add _malloc_prefork() and _malloc_postfork(), and use them instead of directly manipulating __malloc_lock. Approved by: phk, markm (mentor)
* Make lookups for relocations from old unversioned binaries returnkan2005-12-241-17/+32
| | | | | | | | oldest versioned symbol available. Do not accept hidden symbols for all other versions. Use "<obj->path>: <error message>" for all error messages in new functions to make them more consistent.
* Remove debugging statement that slipped into lone of the previous commitskan2005-12-231-1/+0
| | | | unintentionally.
* Initialize object dagmembers list before checking version dependencies.kan2005-12-221-4/+2
|
* Implement ELF symbol versioning using GNU semantics. This code aimskan2005-12-189-133/+548
| | | | | | | | | to be compatible with symbol versioning support as implemented by GNU libc and documented by http://people.redhat.com/~drepper/symbol-versioning and LSB 3.0. Implement dlvsym() function to allow lookups for a specific version of a given symbol.
* Make our ELF64 type definitions match standards. In particular thismarcel2005-12-183-11/+11
| | | | | | | | | | | | | means: o Remove Elf64_Quarter, o Redefine Elf64_Half to be 16-bit, o Redefine Elf64_Word to be 32-bit, o Add Elf64_Xword and Elf64_Sxword for 64-bit entities, o Use Elf_Size in MI code to abstract the difference between Elf32_Word and Elf64_Word. o Add Elf_Ssize as the signed counterpart of Elf_Size. MFC after: 2 weeks
* Explicitly cast ELF_R_TYPE() to the right type.marcel2005-12-183-6/+6
|
* Fix a bug in dlinfo(RTLD_DI_SERINFOSIZE) requests. For each search pathjhb2005-11-111-1/+1
| | | | | | | | | | | | we included the length of the path in the returned size but not the length of the associated Dl_serpath structure. Without this fix, programs attempting to allocate a structure to hold the search path information would allocate too small of a buffer and rtld would overrun the buffer while filling it via a subsequent RTLD_DI_SERINFO request. Submitted by: "William K. Josephson" wkj at morphisms dot net Reviewed by: jdp MFC after: 2 weeks
OpenPOWER on IntegriCloud