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