Age | Commit message (Collapse) | Author | |
---|---|---|---|
2008-10-02 | Fix mmap() error checking to be correct 64-bit addresses. Consistently | Kurt Miller | |
use _dl_mmap_error() to check for mmap() errors. Adjust datatypes of some local vars for 64-bit safety. okay millert@ drahn@ | |||
2008-04-09 | Improve support for shared libs linked at non-zero addreses: | Kurt Miller | |
- rename private values in struct elf_object to better describe their meaning: s/load_offs/obj_base/ "object's address '0' base" s/load_addr/load_base/ "The base address of the loadable segments" - gdb needs the obj_base value so swap positions with load_base in struct elf_object - fix a few occurrences of where load_base was used instead of obj_base. With help and okay drahn@ | |||
2007-11-27 | Make _dl_md_reloc_got() report errors, and take them into account. | Miod Vallat | |
Fixes PR #5579. | |||
2007-05-05 | Provide hook so that rthreads can provide a spinlock to protect from races | Dale Rahn | |
in lazy binding. ok art@, kurt@ | |||
2006-10-28 | Only mprotect pages during relocation if the library is marked TEXTREL | Dale Rahn | |
mips64 version still needs testing. | |||
2006-05-08 | more spacing | Theo de Raadt | |
2006-05-03 | prebind - how to prelink a binary without throwing security out the window | Dale Rahn | |
Prelink fixes the address of libraries making 'return to libc' attacks trival, prebind uses a different method to achieve most of the same gains, however without adding any security conerns. Still under development, now in-tree. | |||
2005-12-02 | fix RELOC_COPY on powerpc when symbol is weak. use relocation address | Kurt Miller | |
instead of symbol address. okay drahn@ | |||
2005-09-22 | missed a NOWARN -> WARN change | Dale Rahn | |
2005-09-22 | Use std missing symbol print instead of MD custom, do not warn on weak | Dale Rahn | |
undefined symbols, or count them as failures. inspired kurt@ | |||
2005-09-21 | Simplify the internal symbol finding API, with some cleanup, prep for | Dale Rahn | |
next step. ok kurt@ | |||
2005-09-16 | Rework symbol lookup to more closely match sun's documentation, now | Dale Rahn | |
treats dlopens as load groups. ok kurt@ | |||
2004-05-25 | provide one version of _dl_bcopy instead of copy in every arch; drahn@ ok | Michael Shalayeff | |
2004-05-25 | return object* the symbol is in for _dl_find_symbol*; drahn@ ok | Michael Shalayeff | |
2004-05-24 | Change define used to deal with PLT protection, use postive logic not negative. | Dale Rahn | |
ok mickey@ | |||
2004-01-12 | GCC3 compatible asm code. tested on gcc2 myself. ok brad@ | Dale Rahn | |
2003-12-03 | Move the asm definition of _dl__syscall from a header file into a .c file | Dale Rahn | |
so that 12 copies of it are not generated. | |||
2003-09-04 | Fix W^X mistake. If the dynamic linker is workin in non-lazy mode, it | Dale Rahn | |
should still mprotect the GOT and PLT as appropriate. ok deraadt@ miod@ | |||
2003-09-04 | Symbol cache for GOT lookup. When a symbol is found it is saved in a cache | Dale Rahn | |
for future lookups in the same GOT relocation table. Uses static buffer for small symbol tables, mmap for larger ones. ok deraadt@ | |||
2003-09-02 | Fix PR 3371, symbol lookup in dlopen()ed objects is not correct. Correct | Dale Rahn | |
behavior for RTLD_GLOBAL/RTLD_LOCAL is now supported. ok espie@ | |||
2003-08-19 | Fix PowerPC PLT generation. After 2^12 entries (2^14 offset), only every | Dale Rahn | |
other slot in the PLT is used, this is because it takes more than one instruction to generate a constant > 2^14. Normal PLT entry < 2^12 li r11, <n> # where n is PLT index*4 (offset used for plttable). b .pltresolve | .pltcall | target PLT entry after 2^12 lis r11, <n>@ha addi r11, r11, <n>@l # where n is PLT index*4 (offset used for plttable). b .pltresolve | .pltcall | target nop # unused This is all specified by the PowerPC SVID. The PLT table generation code was never tested for entries > 2^12 before and was broken. This fixes the indexing, the constant checking 12 vs 14, ... This code has been tested with up to 128000+ functions. | |||
2003-07-28 | The fifth argument to _dl_find_symbol is a 'int size', not a SYM_ define. | Dale Rahn | |
Fix several calls which had the incorrect but working define in that position It happened that SYM_NOTPLT was 0, which was the desired size value. | |||
2003-07-09 | changes to ld.so to be compatible with newer binutils, requires | Dale Rahn | |
slight changes in the startup code on most archs. ok art@ brad@ | |||
2003-07-06 | various proto, ansi, and knf repair. tested on all architectures that | Theo de Raadt | |
use it. (build may require make cleandir because of .depend balony) | |||
2003-06-09 | pefo 3/4 licence cleanups | Theo de Raadt | |
2003-05-30 | When loading a shared object or libraries dependant object, load them | Dale Rahn | |
in random order. This will reduce the possiblity of a buffer overflow being able to predict the addresss of useful code. Can be disabled with the LD_NORANDOM environment variable for debugging purposes. ok deraadt. | |||
2003-03-10 | typo | David Krause | |
ok drahn@ | |||
2003-02-26 | Initialized the ABI stated 'cleanup' parameter to _start. This parameter | Dale Rahn | |
is not used, but is now initialized to a valid value. | |||
2003-02-15 | After relocation is completed, remove write protection from GOT/PLT in ld.so. | Dale Rahn | |
2003-02-15 | Paranoia about mprotect, mprotect page aligned regions for got and plt. | Dale Rahn | |
2003-02-15 | Do not call mprotect to enable writing for sections which normally are | Dale Rahn | |
writable. Idea taken from alpha version. Saves many mprotect syscalls. | |||
2003-02-02 | knf & ansi; drahn ok | Theo de Raadt | |
2003-01-30 | Only flush the got address, if there is one. DOH. | Dale Rahn | |
2003-01-24 | Flush the blrl instruction from the instruction cache if the GOT tag is | Dale Rahn | |
present. Fixes illegal instruction problems seen the last few days tested by myself and matthieu@ | |||
2002-12-18 | Prepare for an upcoming ELF executable change. This will allow ld.so to | Dale Rahn | |
protect the GOT and PLT sections of the executable from being overwritten. This behavior is enabled by changes in the executable/shared object layout, and does not occur without the ld changes. | |||
2002-12-09 | Build ld.so as a normal shared object, not with special linkage. | Dale Rahn | |
mprotect the necessary bit to make this work right. ok deraadt@ | |||
2002-11-22 | Formatting cleanup, no point in extra nesting block. No functional change. | Dale Rahn | |
2002-11-14 | Make error messages on symbol lookup failures more useful. | Dale Rahn | |
2002-11-05 | Use define, not number. | Dale Rahn | |
2002-10-25 | Some small fixes in MI code for mips backport. A new reloc md function, | Per Fogelstrom | |
RELOC_GOT, was added to handle mips got bootstrap reloc. Also remove workaround used on previous versions of binutils for mips. | |||
2002-10-21 | Simplify the ld.so asm api, the data is available other ways. | Dale Rahn | |
tested by naddy@ and myself. | |||
2002-09-09 | Add lazy binding support for powerpc ld.so. ok pvalchev@ brad@ | Dale Rahn | |
2002-08-23 | Change arguments to _dl_find_symbol() myself, warnnotfound, and inplt into | Dale Rahn | |
a single flags field with bits representing each. Use defines to create the appropriate masks. Add a new argument sym_size to warn about symbols which have the incorrect size. This replaces 'ifdef notyet' code which was in several of the md files with a single version. sym_size == 0 means do not check, and symbols of type FUNC are not checked. | |||
2002-08-21 | Split out MD makefile parts into separate files and do | Artur Grabowski | |
some other cleanup in the Makefile. drahn@ ok. | |||
2002-08-12 | Add support for REL type relocations, all currently supported arch | Dale Rahn | |
use only RELA type relocations, but that could change. ok art@ | |||
2002-08-11 | The parameter dynp was never used, rather than pass in a dummy on most | Dale Rahn | |
archs and a nasty calcuation on others, remove the parameter. | |||
2002-08-11 | Fix for Elfbug, the Xtiherit problem which has been seen on most OpenBSD | Dale Rahn | |
ELF dynamic systems. This was due to an oddity in ELF where the address of fuctions refer to the PLT address in the program, rather than the actual function address. | |||
2002-07-24 | ok i found it | Theo de Raadt | |
2002-07-24 | back out broken stuff until it is fixed | Theo de Raadt | |
2002-07-24 | spacing | Theo de Raadt | |