Issue #2854 has been updated by shamaz.

What is so special about ET_DYN_LOAD_ADDR? Is it really important to keep 
backward compatibility when vm.randomize_mmap=0? PIE code doesn't care where it 
is loaded in memory, no matter if it's randomized or not. Treat it like a 
shared library. Also it will not cause any trouble to userland programs, 
because world and ports are compiled as normal executables, not as PIEs. 
Currently, vm.randomize_mmap is only checked in vm_map_hint(), do you really 
want to check it somewhere else, making the code more complex and harder to 
understand? If you want, I can try to build some apps from DPorts with -pie 
flag and check if they are working (already tried flac decoder), just name it. 
If you want to keep ET_DYN_LOAD_ADDR, I'll just give up ) It is simpy a macro 
from FreeBSD which does not support ASLR at all.

----------------------------------------
Submit #2854: Support for place independent executables
http://bugs.dragonflybsd.org/issues/2854#change-12763

* Author: shamaz
* Status: New
* Priority: Normal
* Assignee: 
* Category: Kernel
* Target version: 
----------------------------------------
Hello. If you launch a PIE, the loader will map it in memory to a fixed
position (ET_DYN_LOAD_ADDR). This patch changes this behaviour and makes
the loader respect vm.randomize_map sysctl.

---Files--------------------------------
pie.patch (1.98 KB)
pie2.patch (2.18 KB)
pie3.patch (2.11 KB)


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://bugs.dragonflybsd.org/my/account

Reply via email to