diff options
Diffstat (limited to 'packages/glibc/2.12.1/0025-dl_execstack-PaX-support.patch')
-rw-r--r-- | packages/glibc/2.12.1/0025-dl_execstack-PaX-support.patch | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/packages/glibc/2.12.1/0025-dl_execstack-PaX-support.patch b/packages/glibc/2.12.1/0025-dl_execstack-PaX-support.patch deleted file mode 100644 index bfd75579..00000000 --- a/packages/glibc/2.12.1/0025-dl_execstack-PaX-support.patch +++ /dev/null @@ -1,69 +0,0 @@ - With latest versions of glibc, a lot of apps failed on a PaX enabled - system with: - cannot enable executable stack as shared object requires: Permission denied - - This is due to PaX 'exec-protecting' the stack, and ld.so then trying - to make the stack executable due to some libraries not containing the - PT_GNU_STACK section. Bug #32960. <azarah@gentoo.org> (12 Nov 2003). - - Patch also NPTL. Bug #116086. <kevquinn@gentoo.org> (20 Dec 2005). - ---- - nptl/allocatestack.c | 3 ++- - sysdeps/unix/sysv/linux/dl-execstack.c | 19 ++++++++++++++++--- - 2 files changed, 18 insertions(+), 4 deletions(-) - ---- a/nptl/allocatestack.c -+++ b/nptl/allocatestack.c -@@ -329,7 +329,8 @@ - # error "Define either _STACK_GROWS_DOWN or _STACK_GROWS_UP" - #endif - if (mprotect (stack, len, PROT_READ | PROT_WRITE | PROT_EXEC) != 0) -- return errno; -+ if (errno != EACCES) /* PAX is enabled */ -+ return errno; - - return 0; - } ---- a/sysdeps/unix/sysv/linux/dl-execstack.c -+++ b/sysdeps/unix/sysv/linux/dl-execstack.c -@@ -63,7 +63,10 @@ - else - # endif - { -- result = errno; -+ if (errno == EACCES) /* PAX is enabled */ -+ result = 0; -+ else -+ result = errno; - goto out; - } - } -@@ -89,7 +92,12 @@ - page -= size; - else - { -- if (errno != ENOMEM) /* Unexpected failure mode. */ -+ if (errno == EACCES) /* PAX is enabled */ -+ { -+ result = 0; -+ goto out; -+ } -+ else if (errno != ENOMEM) /* Unexpected failure mode. */ - { - result = errno; - goto out; -@@ -115,7 +123,12 @@ - page += size; - else - { -- if (errno != ENOMEM) /* Unexpected failure mode. */ -+ if (errno == EACCES) /* PAX is enabled */ -+ { -+ result = 0; -+ goto out; -+ } -+ else if (errno != ENOMEM) /* Unexpected failure mode. */ - { - result = errno; - goto out; |