]>
Commit | Line | Data |
---|---|---|
5ce64f90 JB |
1 | diff -urN glibc-2.3.5.orig/sysdeps/unix/sysv/linux/dl-execstack.c glibc-2.3.5/sysdeps/unix/sysv/linux/dl-execstack.c |
2 | --- glibc-2.3.5.orig/sysdeps/unix/sysv/linux/dl-execstack.c 2005-09-23 13:07:35.000000000 +0200 | |
3 | +++ glibc-2.3.5/sysdeps/unix/sysv/linux/dl-execstack.c 2005-09-23 13:31:45.000000000 +0200 | |
4 | @@ -60,7 +60,10 @@ | |
7e6493e0 | 5 | no_growsupdown = true; |
5ce64f90 | 6 | else |
7e6493e0 | 7 | # endif |
e5fc5449 | 8 | - return errno; |
5ce64f90 JB |
9 | + if (errno == EACCES) /* PaX */ |
10 | + return 0; | |
11 | + else | |
12 | + return errno; | |
e5fc5449 | 13 | } |
7e6493e0 | 14 | #endif |
e5fc5449 | 15 | |
5ce64f90 | 16 | @@ -86,7 +89,10 @@ |
e5fc5449 | 17 | { |
5ce64f90 JB |
18 | /* Unexpected failure mode. */ |
19 | if (errno != ENOMEM && errno != EFAULT) | |
20 | - return errno; | |
21 | + if (errno == EACCES) /* PaX */ | |
22 | + return 0; | |
23 | + else | |
24 | + return errno; | |
e5fc5449 | 25 | |
7e6493e0 | 26 | if (size == GLRO(dl_pagesize)) |
e5fc5449 | 27 | /* We just tried to mprotect the top hole page and failed. |
5ce64f90 | 28 | @@ -110,7 +116,10 @@ |
e5fc5449 | 29 | { |
5ce64f90 JB |
30 | /* Unexpected failure mode. */ |
31 | if (errno != ENOMEM && errno != EFAULT) | |
32 | - return errno; | |
33 | + if (errno == EACCES) /* PaX */ | |
34 | + return 0; | |
35 | + else | |
36 | + return errno; | |
e5fc5449 | 37 | |
7e6493e0 | 38 | if (size == GLRO(dl_pagesize)) |
e5fc5449 | 39 | /* We just tried to mprotect the lowest hole page and failed. |