Hello!

I'm using a Hardened Kernel and set "Disallow ELF text relocations"
(CONFIG_PAX_NOELFRELOCS=y). Because of that, I'm unable to run
nxagent from nxserver-freenx package. It fails with the following
error message:

/usr/NX/bin/nxagent: error while loading shared libraries:
/usr/NX/lib/libXcompext.so.1: cannot make segment writable for relocation:
Permission denied

According to the Gentoo Hardened FAQ at
<http://www.gentoo.org/proj/en/hardened/hardenedfaq.xml#paxnoelf>,
that's okay - ie. the kernel setting causes the error message.

Now, how do I allow text relocations for just ONE binary, while
keeping it disallowed for every other executable (the ones which
already exist and the ones, which are to come in the future)?

I now would like to disable this error and allow my program to
be run. How do I do that? The FAQ states, that there's a
PaX feature called MPROTECT which is to be used and that
MPROTECT must be disallowed on the executable which fails to
get executed.

How do I do that?

I thought that I could do this with "chpax -m $binary" (replacing
$binary by the path to the executable, of course. In this case,
/usr/NX/bin/nxagent). But, I did this, and I still get the error
message.

How do I disallow MPROTECT on just one binary? What is "chpax
-m" doing?

Thanks,

Alexander Skwar
--
printk(KERN_DEBUG "%s: BUG... transmitter died. Kicking it.\n",...)
        linux-2.6.6/drivers/net/acenic.c
--
gentoo-user@gentoo.org mailing list

Reply via email to