Age | Commit message (Collapse) | Author | |
---|---|---|---|
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@ | |||
2008-02-24 | Use rounded down address when changing memory protections on the GOT, such | Dale Rahn | |
that we don't accidentally touch the page after the GOT. Bug found on sparc64 affected other platforms as well. ok kettenis@ | |||
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-09-26 | switch alpha to gcc3; joint work with drahn@ and brad@ | Martin Reindl | |
ok drahn@ brad@ mickey@ deraadt@ | |||
2006-08-06 | Do not take shortcuts when the PLT size is 0; makes emacs work again on alpha. | Mark Kettenis | |
ok drahn@ | |||
2006-08-06 | Work around an issue found when working with gcc3 on alpha, | Dale Rahn | |
gcc2 nomally calls functions thru the gp (basically a function pointer), but gcc3 frequently calls directly to the plt. gcc2 does occasionally directly call to the plt. Currently how the plt/pltgot is fixed up on lazy binding, this will cause the dl_bind code to be called on each plt call causing a symbol resolution and plt fixup. This diff works around the problem partially by recognizing that a pltgot entry is already fixed and skips the symbol resolution. Since the pltgot is what is modified do not add PROT_EXEC permission to the mapping. While this is not an ideal fix, kettenis and I think it is better than before. | |||
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. | |||
2006-02-22 | No need to include <machine/elf_machdep.h> | Miod Vallat | |
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-25 | spacing | Theo de Raadt | |
2004-05-24 | Change define used to deal with PLT protection, use postive logic not negative. | Dale Rahn | |
ok mickey@ | |||
2003-09-05 | Put in workaround for alpha so that non-lazy binding seems to work, | Dale Rahn | |
however it is using some of the lazy binding values. With this patch LD_BIND_NOW=yes make does not core. ok deraadt@ | |||
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-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-06-03 | three four gone. | Artur Grabowski | |
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-07 | Fix cut and paste on wrong line bugs, now like other versions. ok miod@ | Dale Rahn | |
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-01-17 | Change the GOT initialization so that it is done in a function which | Dale Rahn | |
initialized just the correct addresses instead of assuming that the GOT extends from _GLOBAL_OFFSET_TABLE_ to _DYNAMIC. Mostly from NetBSD. ok nate@ | |||
2003-01-16 | whitespace removal. | Dale Rahn | |
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-11-14 | Make error messages on symbol lookup failures more useful. | 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-01 | Make sure that the symbol return value is always initialized before | Dale Rahn | |
the address of it is passed to dl_find_symbol(). fixes xpdf lazy binding problem. ok art@ | |||
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-23 | match _dl_ syscall prototypes w/ the real syscalls prototypes, including ↵ | Michael Shalayeff | |
args and return values; art@ ok | |||
2002-07-12 | Change ld.so search order/method to match the a.out ld.so. | Dale Rahn | |
run destructors on dlclose() Move more symbols into _dl_ private space, so that the proper (libc) version of the function will be used. Add readdir() functionality to perform the proper library searching. Support DL_PRELOAD Do not relocate symbols if ld.so is being traced (and will exit). Misc lint cleanup. ok art@ | |||
2002-07-07 | typos/grammar/better words | Jan-Uwe Finck | |
in comments. | |||
2002-06-05 | Cleanup/remove duplicate code that checks STAT_RELOC_DONE. | Artur Grabowski | |
2002-06-05 | Get rid of an unnecessary typedef (for future cleanup). | Artur Grabowski | |
2002-05-24 | more KNF | Theo de Raadt | |