On 2016-09-06, Philippe Meunier <meun...@ccs.neu.edu> wrote: > Theo de Raadt wrote: >>It is probably staring you in the face. > > Okay, I assume this requires -current then? I'm using 6.0-release on > i386 and I don't see it: > > $ readelf -l /usr/local/jdk-1.8.0/bin/java | egrep -i wx > $ > > (yes, I know that java was linked with wxneeded (I get an "mprotect W^X > violation" message in the logs when I run java), it's just an example) > > Philippe > >
Java was not linked with the wxneeded linker option in 6.0. To run java (either on 6.0 or -current) the executables need to be on a filesystem mounted with the wxallowed flag. Besides readelf, you can also use 'objdump -p', binaries so annotated will look like this: $ objdump -p /usr/local/chrome/chrome /usr/local/chrome/chrome: file format elf64-x86-64 Program Header: PHDR off 0x0000000000000040 vaddr 0x0000000000000040 paddr 0x0000000000000040 align 2**3 filesz 0x00000000000002a0 memsz 0x00000000000002a0 flags r-x INTERP off 0x00000000050152ce vaddr 0x00000000051152ce paddr 0x00000000051152ce align 2**0 filesz 0x0000000000000013 memsz 0x0000000000000013 flags r-- LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**20 filesz 0x00000000050152ce memsz 0x00000000050152ce flags r-x LOAD off 0x00000000050152ce vaddr 0x00000000051152ce paddr 0x00000000051152ce align 2**20 filesz 0x0000000002c3b706 memsz 0x0000000002c3b706 flags r-- LOAD off 0x0000000007c510e0 vaddr 0x0000000007e510e0 paddr 0x0000000007e510e0 align 2**20 filesz 0x00000000004cb0a0 memsz 0x0000000000654768 flags rw- DYNAMIC off 0x00000000080d8938 vaddr 0x00000000082d8938 paddr 0x00000000082d8938 align 2**3 filesz 0x0000000000000420 memsz 0x0000000000000420 flags rw- NOTE off 0x00000000050152e4 vaddr 0x00000000051152e4 paddr 0x00000000051152e4 align 2**2 filesz 0x0000000000000018 memsz 0x0000000000000018 flags r-- EH_FRAME off 0x0000000006effa70 vaddr 0x0000000006fffa70 paddr 0x0000000006fffa70 align 2**2 filesz 0x00000000002818f4 memsz 0x00000000002818f4 flags r-- STACK off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**3 filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw- OPENBSD_WXNEEDED off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**3 filesz 0x0000000000000000 memsz 0x0000000000000000 flags --x OPENBSD_RANDOMIZE off 0x0000000007c510e0 vaddr 0x0000000007e510e0 paddr 0x0000000007e510e0 align 2**3 filesz 0x0000000000000008 memsz 0x0000000000000008 flags rw- RELRO off 0x0000000007c510e0 vaddr 0x0000000007e510e0 paddr 0x0000000007e510e0 align 2**4 filesz 0x00000000004a5f18 memsz 0x00000000004a5f18 flags r-- [...snip...]