strscan: make it work properly
[tools.git] / tools / evilenvexec.c
1 #include <errno.h>
2 #include <string.h>
3 #include <unistd.h>
4 #include <stdio.h>
5
6 extern char **environ;
7
8 int main2() {
9   printf("trying to read the first char of the environment...\n");
10   puts(*environ);
11   printf("char read: %c\n", **environ);
12   return 0;
13 }
14
15 int main1() {
16   char *newenv[] = {(char *)0xffffffff80008000, NULL};
17   char *argv[] = { "evilenvexec", "stage2", NULL };
18   execve("/proc/self/exe", argv, newenv);
19   printf("execve fail: %s\n", strerror(errno));
20   return 1;
21 }
22
23 int main(int argc, char *argv[]) {
24   if (argc == 2) return main2();
25   return main1();
26 }