notaz.gp2x.de
/
ginge.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
unset ld env before running command
[ginge.git]
/
loader
/
loader.c
diff --git
a/loader/loader.c
b/loader/loader.c
index
8a021df
..
84758c1
100644
(file)
--- a/
loader/loader.c
+++ b/
loader/loader.c
@@
-15,6
+15,7
@@
#include "header.h"
#include "realfuncs.h"
#include "header.h"
#include "realfuncs.h"
+#include "syscalls.h"
char *bin_path;
char **g_argv;
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 *stack_frame;
struct stat st;
char buf[64];
+ long lret;
if (argc < 2) {
fprintf(stderr, "usage: %s <program> [args]\n", argv[0]);
if (argc < 2) {
fprintf(stderr, "usage: %s <program> [args]\n", argv[0]);
@@
-84,6
+86,12
@@
int main(int argc, char *argv[])
g_argv = 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");
fi = fopen("/proc/self/maps", "r");
CHECK_NE(fi, NULL, "fopen maps");