Re: [PATCH v4 3/3] MIPS: set stack/data protection as non-executable

From: Leonid Yegoshin
Date: Wed Aug 05 2015 - 20:24:06 EST


On 08/05/2015 05:14 PM, David Daney wrote:
On 08/05/2015 05:06 PM, Leonid Yegoshin wrote:
On 08/05/2015 04:55 PM, Paul Burton wrote:


As was pointed out last time you posted this, it breaks backwards
compatibility with userland & thus cannot be applied.

Never observed since first version.

In other side, the problem with apps like ssh_keygen is observed in
absence of executable stack protection.

You cannot change the default.

If your ssh_keygen is broken, get a working version.

It is actually any application which requests non-executable stack protection and needs some emulation BEFORE GLIBC cancels that non-executable stack protection due to libraries.

If you build all libraries with PT_GNU_STACK 'non-executable' and use application with the same protection then you can't emulate even a single instruction - it crashes immediately. So, it is not a bad application, it is a bad choice for emulation space in past.


I have never had a problem running ssh_keygen (on platforms requiring emulation).

Create a buildroot FS with PT_GNU_STACK 'non-executable' libraries. Then run ssh_keygen on CPU without FPU and look.

You also may try to run MIPS R2 Debian on MIPS R6 CPU, and see a spectacular failure of ssh_keygen (it tries to emulate MIPS R2 instruction before first library is loaded and that fails due to non-executable stack protection.

- Leonid.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/