Re: Potential bug in fs/binfmt_elf.c?

From: Jakub Jelinek
Date: Mon Mar 08 2004 - 03:08:06 EST


On Sun, Mar 07, 2004 at 09:57:43PM -0800, John Reiser wrote:
> >> LOAD 0x001000 0x00400000 0x00400000 0x00000 0x10000000 R
> >> 0x1000
> >
> >
> >What is the purpose of allocating 256MB of read-only zeros?
>
> To prevent the kernel from placing any shared libraries there [via mmap()
> from ld-linux.so.2], especially under the influence of exec-shield.
> This is 'wine', which wants to reserve that address space for mapping
> executables that were built for some other operating system. For this
> purpose, the .p_flags of PF_R instead could be 0 [==> PROT_NONE]; but
> do_brk() still turns either one into 'prw.' which has potential memory
> [over-]commit charges. The expected 'pr--' [or 'p---'] should have
> a memory commit cost of zero.

It should really be p_flags 0 and binfmt_elf.c should be fixed if it doesn't
handle that properly.
glibc ld.so indeed does the right thing with p_flags 0.

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