|
Message-ID: <d6d3e1ae-1259-5bb6-1bc1-642b32dad138@gmail.com> Date: Thu, 8 Dec 2016 16:30:42 -0600 From: Laine Gholson <laine.gholson@...il.com> To: musl@...ts.openwall.com Subject: Re: ldd not working on ET_EXEC executables You mean RANDMMAP? PaX's RANDMMAP feature ignoring the address your requesting it (without MAP_FIXED) is perfectly valid, to quote POSIX: "When MAP_FIXED is not set, the implementation uses addr in an implementation-defined manner to arrive at pa." mmap2(0x10000, 73728, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x1234abcd You're not passing MAP_FIXED to mmap() but are expecting the kernel to still use the address you're giving it, which is wrong. (as a side note, glibc works and it uses MAP_FIXED) Thanks, Laine Gholson On 12/05/16 20:33, Rich Felker wrote: > On Mon, Dec 05, 2016 at 07:39:32PM -0600, Laine Gholson wrote: >> Hello, >> >> I am running musl on a ARM platform, and ldd won't work on a executable with the ET_EXEC type. >> >> running GNU ld 2.25.1, gcc 6.2.0, and musl 1.1.15-git-71-g54991729 >> >> $ gcc -fPIE -pie test.c -o test-pie >> $ ldd test-pie >> <no error> >> $ gcc -fno-PIE -no-pie test.c -o test-nopie >> $ ldd test-nopie >> ldd: test-nopie: Not a valid dynamic program >> $ elfedit --output-type DYN test-nopie >> $ ldd test-nopie >> <no error> >> >> Any idea why ldd says executables with the ET_EXEC type aren't valid? > > strace it; I suspect you'll find that mmap is not honoring the > requested address. This is a bug introduced intentionally by grsec/pax > and perhaps other hardened kernels. > > Rich >
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.