Age | Commit message (Collapse) | Author |
|
fails.
ok kurt@
|
|
relocation in _reloc_alpha_got(), and teach RELOC_RELA() to skip R_ALPHA_NONE
relocations (which are just nops used to fill out the relocation table).
Handling R_ALPHA_NONE relocations will be necessary for static PIE support
and it is not inconceivable that ld.so will end up with such relocations
at some point.
ok kurt@
|
|
to determine if DT_JMPREL relocations are REL or RELA and conditionally
perform DT_JMPREL in either REL or RELA as needed (idea from kettenis@).
Remove unneeded i386 RELA implementation. i386 static pie working now.
okay kettenis@
|
|
|
|
towards a wimpy (but sufficient) model, kurt and kettenis got upset enough
to do it the right way, right away before we got out of hand. Bravo!
We no longer need /sbin/ld.so on the new roadmap.
|
|
rcsu0.o where the initial 'r' is for relocatable. rcsu0.o performs
self-relocation on static pie binaries by calling a slightly modified
copy of ld.so's _dl_boot_bind() in boot.h.
The first arch implementatation is also included for amd64 where
__start calls _dl_boot_bind() and then calls ___start(). Includes
parts from kettenis@ to help get R_X86_64_64 relocations working
and proper handling for undefined weak symbols.
This is the first part of several to get static pie self-relocating
binaries working. binutils, gcc and kernel changes are forthcoming
to complete the solution, then per-arch implementations are needed
for MD_RCRT0_START in csu.
okay kettenis@ pascal@ deraadt@
|
|
|
|
|
|
PIE possible.
ok deraadt@ tedu@
|
|
relocations, but will always call public symbols through the library's PLT.
|
|
|
|
very special shell, so do not complain about that particular combination.
Idea originally brought up by landry@ five years ago, repeatedly forgotten.
Using feedback from sthen@ millert@ halex@; OK landry@ ajacoutot@.
|
|
|
|
the address of the symbol must always resolve to the entry in the main
program's plt, regardless of which object the address resolution is performed
for, so that addresses (pointers) can be compared reliably.
However, depending on how far away library load address randomization places
the library, the main program's plt address might be too far away from the
library itself for its DISP26 relocations to fit in the required relative
displacement range.
Since DISP26 relocations can only be used in code for branches, it is safe
to resolve them to the actual address within the library, and avoid producing
out of bounds displacements.
|
|
that these don't get reset for every relocation being processed (oops).
ok guenther@ deraadt@
|
|
Use <fcntl.h> instead of <sys/{file,fcntl}.h>
ok krw@
|
|
for quite some time. Mop up the last few, by using /dev/random where we
actually want it, or not even mentioning arandom where it is irrelevant.
|
|
|
|
incorrect client garbage. ok deraadt sthen
|
|
ok deraadt@
|
|
ok espie@ deraadt@ millert@ tedu@
|
|
troff displays these as typographic quotes, but nroff implementations
almost always print them literally, which rarely has the intended effect
with modern fonts, even in stock xterm.
These uses of `` '' can be replaced either with more semantic alternatives
or with Dq, which prints typographic quotes in a UTF-8 locale (but will
automatically fall back to `` '' in an ASCII locale).
improvements and ok schwarze@
|
|
pointed out by deraadt@
|
|
PLT is empty/unused. On at least macppc and sparc64, ld.so's attempt
to mprotect its PLT could instead hit its own allocated data and
cause a segfault shortly there after.
While here, take a shot at preventing the same issue with the GOT
by checking for __got_start != __got_end.
reproduction *with ktracing* by afresh1@ provided the key data
ok miod@ deraadt@
|
|
|
|
distribution in the placement of malloc's dir_info.
ok otto@ deraadt@
|
|
ok millert@
|
|
|
|
millert@ made changes to realpath.c based on FreeBSD's version. I merged
Todd's changes into dl_realpath.c.
ok millert@, guenther@
|
|
ok deraadt@
|
|
ok deraadt@
|
|
Fix example while here.
ok back@
|
|
|
|
Avoid potential integer overflow in the size argument of malloc() and
realloc() by using reallocarray() to avoid unchecked multiplication.
ok deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
Pointed out by LLVM.
ldasm.S:111:74: error: unexpected token in '.type' directive
.section ".text" ; .align 4 ; .global _dl_issetugid ; .type _dl_issetugid%function ;_dl_issetugid: ; movl $253,%eax; int $0x80 ; jb .L_cerr ; ret
^
ok guenther@
|
|
|
|
|
|
|
|
|
|
related to disk stastics for almost 17 years, and the remaining
userland-visible defines duplicate those found in <sys/sched.h>.
Move the remaining _KERNEL defines to <sys/tty.h> where they belong, and
update all users to cope with this.
ok kettenis@
|
|
discussion, help and ok guenther@
|
|
ok beck@
|
|
Also, make a comment not lie: use the V9 ISA's relative branch
immediate instruction for short (with in 2^19 words) PLT branches.
ok miod@
|
|
concept ok deraadt@
diff looks ok tedu@
|
|
Explicitly zero-clear stack array to read dynamic segments. This code has
been working because stack is mapped as anon and zero'ed right after execve(2).
Found by work-in-progress Valgrind port for OpenBSD/amd64.
OK millert@ guenther@
|