Re: Executability of the stack

From: Arjan van de Ven
Date: Thu Dec 14 2006 - 04:57:42 EST


On Thu, 2006-12-14 at 10:26 +0100, Franck Pommereau wrote:
> Dear Linux developers,
>
> I recently discovered that the Linux kernel on 32 bits x86 processors
> reports the stack as being non-executable while it is actually
> executable (because located in the same memory segment).

this is not per se true, it depends on the capabilities of your 32 bit
x86 processor.


> # grep maps /proc/self/maps
> bfce8000-bfcfe000 rw-p bfce8000 00:00 0 [stack]

this shows that the *intent* is to have it non-executable.
Not all x86 processors can enforce this. All modern ones do.

> Is there any reason for this situation?

the alternative (showing effective permission) is equally confusing;
apps would see permissions they didn't set...

> Maybe it comes from sharing source code for 64 bits and 32 bits
> architectures but if so, it should be possible (and highly desirable) to
> treat 32 bits differently.

it's not a "32 bit" thing, it's an "older processors don't, newer ones
do" thing.

Can you paste your /proc/cpuinfo file here ? Maybe you have a processor
with the capability but just haven't enabled it (either in the bios or
in the kernel config)

Greetings,
Arjan van de Ven

-
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/