lkml.org 
[lkml]   [2004]   [Jun]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: WINE + NX (No eXecute) support for x86, 2.6.7-rc2-bk2

> Really the most safe way for Wine is to create a PT_LOAD segment with
> p_flags 0 covering the whole area below the executable. The kernel first
> maps the executable, then the dynamic linker, so no matter what address
> are ld.so and shared libraries prelinked to, they will not be mapped to the
> area Wine reserves.

I did not investigate this, but others who did think that it is not
possible to create a segment that is reserve only so that does not
unnecessarily consume virtual memory. Apparently ELF allows it, but
Linux doesn't.

Secondly the amount of memory we want to reserve depends upon the PE
executable that we want to load, so varies. If we reserve only what
memory we need, when possible shared libraries can be loaded at their
prefered load address, and benefit from prelinking.

> Making Wine a PIE is also a possible solution (at least in FC2 for
> non-prelinked PIEs kernel doesn't honor ld.so's prelinked address), but
> then you cannot be sure the kernel doesn't choose the addresses Wine wishes
> to reserve while randomizing.

We are using a staticly linked binary (preloader) with a fixed load
address at the moment, which reserves memory first, then loads
ld-linux.so.2 and wine as the kernel would.

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

\
 
 \ /
  Last update: 2005-03-22 14:03    [W:0.175 / U:0.080 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site