X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=ginge.git;a=blobdiff_plain;f=loader%2Floader.c;fp=loader%2Floader.c;h=84758c1ac8f31393ace15883ceb4150f9df3655f;hp=8a021df8b33f1fcb1339bd3a7c74e7d3fcf9fd38;hb=df608af11ff903836b8a2be235719511df03b025;hpb=cbd18fd2d426540a4101b7345c93f49b6fbbfa6d diff --git a/loader/loader.c b/loader/loader.c index 8a021df..84758c1 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -15,6 +15,7 @@ #include "header.h" #include "realfuncs.h" +#include "syscalls.h" char *bin_path; char **g_argv; @@ -76,6 +77,7 @@ int main(int argc, char *argv[]) long *stack_frame; struct stat st; char buf[64]; + long lret; if (argc < 2) { fprintf(stderr, "usage: %s [args]\n", argv[0]); @@ -84,6 +86,12 @@ int main(int argc, char *argv[]) g_argv = argv; + lret = g_personality(-1); + if (g_syscall_error(lret) != -1) { + lret |= 0x0240000; // ADDR_COMPAT_LAYOUT | ADDR_NO_RANDOMIZE + g_personality(lret); + } + fi = fopen("/proc/self/maps", "r"); CHECK_NE(fi, NULL, "fopen maps");