Alexandre Julliard : loader: Set the address space limit before starting the preloader.
Module: wine Branch: master Commit: 1b8d9e03a9efe9744456e64d6381a2762a22103c URL: http://source.winehq.org/git/wine.git/?a=commit;h=1b8d9e03a9efe9744456e64d63... Author: Alexandre Julliard <julliard(a)winehq.org> Date: Fri Sep 21 10:43:45 2007 +0200 loader: Set the address space limit before starting the preloader. --- loader/glibc.c | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-) diff --git a/loader/glibc.c b/loader/glibc.c index f4d2f9c..28a8d19 100644 --- a/loader/glibc.c +++ b/loader/glibc.c @@ -27,6 +27,9 @@ #ifdef HAVE_SYS_MMAN_H # include <sys/mman.h> #endif +#ifdef HAVE_SYS_RESOURCE_H +# include <sys/resource.h> +#endif #ifdef HAVE_UNISTD_H # include <unistd.h> #endif @@ -97,6 +100,18 @@ static void check_vmsplit( void *stack ) } } +static void set_max_limit( int limit ) +{ + struct rlimit rlimit; + + if (!getrlimit( limit, &rlimit )) + { + rlimit.rlim_cur = rlimit.rlim_max; + setrlimit( limit, &rlimit ); + } +} + + /********************************************************************** * main */ @@ -108,6 +123,9 @@ int main( int argc, char *argv[] ) wine_init_argv0_path( new_argv0 ); + /* set the address space limit before starting the preloader */ + set_max_limit( RLIMIT_AS ); + if (loader) { /* update WINELOADER with the new name */
participants (1)
-
Alexandre Julliard