Age | Commit message (Collapse) | Author | |
---|---|---|---|
2016-11-03 | small tweak to also check canaries if F is in effect | Otto Moerbeek | |
2016-10-31 | sync to libc: malloc_move is not an option anymore | Otto Moerbeek | |
2016-10-25 | bring canaries for > page sized objects from libc to ld.so; ok guenther@ | Otto Moerbeek | |
2016-10-14 | 0xd0 -> 0xdb from libc malloc | Otto Moerbeek | |
2016-10-14 | move better canary code and validate_junk() over from libc malloc | Otto Moerbeek | |
2016-09-18 | merge form libc malloc: | Otto Moerbeek | |
move page junking tp unmap(), right before we stick the region in the cache; ok tedu@ | |||
2016-09-16 | Implement the DT_RELACOUNT optimization. Missed previously because I | Philip Guenther | |
didn't recognize that RELOC_BBASED_32 was the m88k name for a pure-relative relocation testing by aoyama@ | |||
2016-09-16 | Remove the fallback to the __plt_{start,end} symbols, as the dynamic tags | Philip Guenther | |
with the same info (DT_88K_PLT{START,END} have been around since 5.4 testing by aoyama@ | |||
2016-09-08 | Implement self-relocation for -static -pie on arm. Also removes some | Mark Kettenis | |
unecessary code from the normal startup code and do some general cleanup to make the code more readable. ok guenther@, jsg@ | |||
2016-09-04 | Redundant memset and some better style wrt exiting functions after error. | Otto Moerbeek | |
ok guenther@ | |||
2016-09-03 | cherry-pick a few diffs from libc malloc; ok guenther@ | Otto Moerbeek | |
2016-09-01 | retire sparc | Ted Unangst | |
2016-08-31 | alpha and sh have TCB_SET() macros so don't need _dl_set_tcb() | Philip Guenther | |
ok deraadt@ | |||
2016-08-30 | Move DT_NUM from <sys/exec_elf.h> to resolv.h in ld.so where it belongs. | Mark Kettenis | |
ok guenther@ | |||
2016-08-28 | ld.so doesn't need gettimeofday or lstat stubs any more | Philip Guenther | |
ok deraadt@ | |||
2016-08-28 | fix a comment | Philip Guenther | |
2016-08-28 | Don't call lstat() before readlink() just to see if it's a symlink, | Philip Guenther | |
as readlink() will tell you that more cheaply. ok millert@ | |||
2016-08-27 | Delete debugging from when lazy binding was being implemented | Philip Guenther | |
ok deraadt@ | |||
2016-08-27 | Pull in <stddef.h> for NULL | Philip Guenther | |
(not stdio, because ld.so has a reduced library behind it) | |||
2016-08-23 | Implement support for DT_INIT_ARRAY, DT_FINI_ARRAY and DT_PREINIT_ARRAY. | Mark Kettenis | |
Don't skip DT_INIT and DT_FINI for the main executable. This matches what Linux and Solaris do. ok guenther@ | |||
2016-08-15 | Drop -z nocombreloc. It was a rev 1.1 commit like on arm, so not clear | Philip Guenther | |
why it was needed then; perhaps fixed by the bump in binutils? Removing it enables the full relro layout for ld.so. | |||
2016-08-14 | Drop -z nocombreloc. That's a rev 1.1 commit so not clear why it was needed | Philip Guenther | |
then; perhaps fixed by the bump in binutils? Anyway, builds seem good without it and that enables the full relro layout for ld.so. ok kettenis@ | |||
2016-08-14 | Mark the relro/got section as read-only before setting up the environment | Philip Guenther | |
to minimize the amount of code run without it RO. | |||
2016-08-13 | Passing in &_DYNAMIC appears to have stuck, so eliminate the extra | Philip Guenther | |
variable | |||
2016-08-12 | the slimmed down random functions inside ld.so are strict clones of the | Theo de Raadt | |
libc arc4random API, so call them _dl_{arc4random,arcrandombuf} ok tedu guenther | |||
2016-08-09 | Teach arm to pass &_DYNAMIC to _dl_boot_bind(); can optimize later in tree | Philip Guenther | |
2016-08-08 | Look for a PT_GNU_RELRO section per object and, if present, mprotect that | Philip Guenther | |
range instead of the [__got_start, __got_end) range. On many archs this will cover _DYNAMIC too, so move up the DT_DEBUG handling to before relocations and the mprotect are done. ok kettenis@ | |||
2016-08-07 | As with csu, alpha passes &_DYNAMIC to _reloc_alpha_got(), so just | Philip Guenther | |
save that and pass it to _dl_boot_bind() too | |||
2016-08-07 | Teach i386 to pass &_DYNAMIC to _dl_boot_bind() | Philip Guenther | |
2016-08-07 | Teach mips64 to pass &_DYNAMIC to _dl_boot_bind() | Philip Guenther | |
mips64be testing by deraadt@ | |||
2016-08-07 | hahahah: amd64 has been passing &_DYNAMIC to _dl_boot_bind() for | Philip Guenther | |
*149 months* | |||
2016-08-07 | Flip the #ifdef logic: amd64, arm, i386, and mips64 are the only archs | Philip Guenther | |
using the #else case | |||
2016-08-05 | use a larger chunk for getentropy() and save some for next time. | Ted Unangst | |
coalesces some syscalls instead of one per random number. ok deraadt | |||
2016-07-18 | Polish: | Philip Guenther | |
- copy #define workaround from mips64 to avoid dangling __CERROR symbol - remove trap DL_SYSCALL2_NOERR() macro with comment explanation - make DL_SYSCALL2() self-contained - add END() and ENTRY() macros to make the symbol table shine ok miod@ | |||
2016-07-18 | Updated advice^Wcode from miod@ for passing &_DYNAMIC to _dl_boot_bind | Philip Guenther | |
ok aoyama@ | |||
2016-07-15 | Switch m88k to pass &_DYNAMIC to _dl_boot_bind() | Philip Guenther | |
probably works: this ASM pattern is already used for _dl_dtors | |||
2016-07-04 | Remove prebind support: binding to symbol table indices is too fragile | Philip Guenther | |
for our development process. ok kettenis@ deraadt@ | |||
2016-07-04 | Nuke prebind support; it's unworkable and we're never going to finish it. | Mark Kettenis | |
ok guenther@, deraadt@ | |||
2016-07-04 | The GOT has been initally mapped RW for *years*; ld.so doesn't need to | Philip Guenther | |
mprotect it to RW when filling in the references from the PLT in snaps for a week, ok deraadt@ | |||
2016-06-21 | When handling DT_TEXTREL only set the mapping to READ+WRITE, ignore | Theo de Raadt | |
possible EXEC permission for the section, because the proper permission is set late, and there are no thread concerns here. Avoids W^X issues in oddball cases. ok guenther kettenis | |||
2016-06-21 | Handle textrels like other architectures do. | Theo de Raadt | |
ok kettenis guenther | |||
2016-06-18 | Make mips64 like all the others: only make mappings writable during relocation | Philip Guenther | |
if DT_TEXTREL was set on the object. If that's needed, only set the mapping to READ+WRITE to avoid W^X violation. ok kettenis@ | |||
2016-06-13 | Only need to sync the icache on the GOT for the old BSS PLT format | Philip Guenther | |
ok kettenis@ | |||
2016-06-08 | Some ELF ABIs still require a PLT that is both writable and executable. To | Mark Kettenis | |
avoid W^X violations, initially map such segments as writable and non-executable, and change the mapping to non-writable and executable after initial relocation processing. As a side-benefit this means we no longer depend on the __plt_start and __plt_end to make the PLT read-only after relocation processing. This will break binaries linked with ld -Z, most notably emacs, on some of our architectures. ok deraadt@, guenther@ | |||
2016-06-05 | Avoid W^X violation when setting DT_DEBUG on mips64. | Mark Kettenis | |
ok deraadt@ | |||
2016-05-26 | for textrels (sthen ran into one...): | Theo de Raadt | |
Ignore the listed protection (which may contain X) when making page writeable temporary. | |||
2016-05-22 | Ignore the listed protection (which may contain X) when making page | Theo de Raadt | |
writeable temporary. As pointed out by kettenis, discussed with guenther | |||
2016-05-21 | mul/div/rem replacement should happen without PROT_EXEC | Theo de Raadt | |
ok guenther | |||
2016-05-21 | Temporarily make the PLT writable when we're initializing the magic slots | Mark Kettenis | |
or doing non-lazy relocation processing. ok guenther@ | |||
2016-05-19 | Give the caller a chance to handle the failure if unable to allocate | Philip Guenther | |
the TIB for a new thread ok jca@ millert@ deraadt@ |