From 30950a5fd2346c43ba4fc59c16f122cfb59f9629 Mon Sep 17 00:00:00 2001 From: "Ryan S. Arnold" Date: Sun, 19 Dec 2010 22:49:01 -0500 Subject: Make PowerPC64 default to nonexecutable stack --- sysdeps/i386/stackinfo.h | 8 +++++++- sysdeps/ia64/stackinfo.h | 8 +++++++- sysdeps/powerpc/stackinfo.h | 13 ++++++++++++- sysdeps/s390/stackinfo.h | 8 +++++++- sysdeps/sh/stackinfo.h | 8 +++++++- sysdeps/sparc/stackinfo.h | 8 +++++++- sysdeps/x86_64/stackinfo.h | 8 +++++++- 7 files changed, 54 insertions(+), 7 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/i386/stackinfo.h b/sysdeps/i386/stackinfo.h index 2530ea7234..166c1d14ae 100644 --- a/sysdeps/i386/stackinfo.h +++ b/sysdeps/i386/stackinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2009 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,9 +22,15 @@ #ifndef _STACKINFO_H #define _STACKINFO_H 1 +#include + /* On x86 the stack grows down. */ #define _STACK_GROWS_DOWN 1 +/* Default to an executable stack. PF_X can be overridden if PT_GNU_STACK is + * present, but it is presumed absent. */ +#define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X) + /* Access to the stack pointer. The macros are used in alloca_account for which they need to act as barriers as well, hence the additional (unnecessary) parameters. */ diff --git a/sysdeps/ia64/stackinfo.h b/sysdeps/ia64/stackinfo.h index b7dc5d91dd..a7446e665d 100644 --- a/sysdeps/ia64/stackinfo.h +++ b/sysdeps/ia64/stackinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001 Free Software Foundation, Inc. +/* Copyright (C) 2001, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,8 +22,14 @@ #ifndef _STACKINFO_H #define _STACKINFO_H 1 +#include + /* On IA-64 the stack grows down. The register stack is of no concern here. */ #define _STACK_GROWS_DOWN 1 +/* Default to an executable stack. PF_X can be overridden if PT_GNU_STACK is + * present, but it is presumed absent. */ +#define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X) + #endif /* stackinfo.h */ diff --git a/sysdeps/powerpc/stackinfo.h b/sysdeps/powerpc/stackinfo.h index 839758a4e3..aac86a48a2 100644 --- a/sysdeps/powerpc/stackinfo.h +++ b/sysdeps/powerpc/stackinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,7 +22,18 @@ #ifndef _STACKINFO_H #define _STACKINFO_H 1 +#include + /* On PPC the stack grows down. */ #define _STACK_GROWS_DOWN 1 +#if __WORDSIZE == 64 +/* PPC64 doesn't need an executable stack and doesn't need PT_GNU_STACK + * to make the stack nonexecutable. */ +# define DEFAULT_STACK_PERMS (PF_R|PF_W) +#else +/* PF_X can be overridden if PT_GNU_STACK is present but is presumed absent. */ +# define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X) +#endif + #endif /* stackinfo.h */ diff --git a/sysdeps/s390/stackinfo.h b/sysdeps/s390/stackinfo.h index 7e09c85b9b..058dff6bad 100644 --- a/sysdeps/s390/stackinfo.h +++ b/sysdeps/s390/stackinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,7 +22,13 @@ #ifndef _STACKINFO_H #define _STACKINFO_H 1 +#include + /* On s390 the stack grows down. */ #define _STACK_GROWS_DOWN 1 +/* Default to an executable stack. PF_X can be overridden if PT_GNU_STACK is + * present, but it is presumed absent. */ +#define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X) + #endif /* stackinfo.h */ diff --git a/sysdeps/sh/stackinfo.h b/sysdeps/sh/stackinfo.h index e65338f256..f1c0977457 100644 --- a/sysdeps/sh/stackinfo.h +++ b/sysdeps/sh/stackinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001 Free Software Foundation, Inc. +/* Copyright (C) 2001, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,7 +22,13 @@ #ifndef _STACKINFO_H #define _STACKINFO_H 1 +#include + /* On SH the stack grows down. */ #define _STACK_GROWS_DOWN 1 +/* Default to an executable stack. PF_X can be overridden if PT_GNU_STACK is + * present, but it is presumed absent. */ +#define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X) + #endif /* stackinfo.h */ diff --git a/sysdeps/sparc/stackinfo.h b/sysdeps/sparc/stackinfo.h index fd34e2deb0..189e4b6fa1 100644 --- a/sysdeps/sparc/stackinfo.h +++ b/sysdeps/sparc/stackinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001 Free Software Foundation, Inc. +/* Copyright (C) 2001, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,7 +22,13 @@ #ifndef _STACKINFO_H #define _STACKINFO_H 1 +#include + /* On sparc the stack grows down. */ #define _STACK_GROWS_DOWN 1 +/* Default to an executable stack. PF_X can be overridden if PT_GNU_STACK is + * present, but it is presumed absent. */ +#define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X) + #endif /* stackinfo.h */ diff --git a/sysdeps/x86_64/stackinfo.h b/sysdeps/x86_64/stackinfo.h index b11849d9ab..d4fc25f457 100644 --- a/sysdeps/x86_64/stackinfo.h +++ b/sysdeps/x86_64/stackinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001, 2009 Free Software Foundation, Inc. +/* Copyright (C) 2001, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,9 +22,15 @@ #ifndef _STACKINFO_H #define _STACKINFO_H 1 +#include + /* On x86_64 the stack grows down. */ #define _STACK_GROWS_DOWN 1 +/* Default to an executable stack. PF_X can be overridden if PT_GNU_STACK is + * present, but it is presumed absent. */ +#define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X) + /* Access to the stack pointer. The macros are used in alloca_account for which they need to act as barriers as well, hence the additional (unnecessary) parameters. */ -- cgit v1.2.3