summaryrefslogtreecommitdiff
path: root/sys/kern/exec_elf32.c
diff options
context:
space:
mode:
authorelad <elad@NetBSD.org>2006-11-22 02:02:51 +0000
committerelad <elad@NetBSD.org>2006-11-22 02:02:51 +0000
commita84fee7faffe0455d7a4d4f03c03d697bde6849c (patch)
treea598a3231359a9c3ccc229b5b9c2aa9f340660fa /sys/kern/exec_elf32.c
parent25e0bf9073a7cb7cb3443ad5b3b97717c19b18ac (diff)
Initial implementation of PaX Segvguard (this is still work-in-progress,
it's just to get it out of my local tree).
Diffstat (limited to 'sys/kern/exec_elf32.c')
-rw-r--r--sys/kern/exec_elf32.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/sys/kern/exec_elf32.c b/sys/kern/exec_elf32.c
index b7aa4f2a9c0..00aac776a56 100644
--- a/sys/kern/exec_elf32.c
+++ b/sys/kern/exec_elf32.c
@@ -1,4 +1,4 @@
-/* $NetBSD: exec_elf32.c,v 1.118 2006/11/22 00:41:38 elad Exp $ */
+/* $NetBSD: exec_elf32.c,v 1.119 2006/11/22 02:02:51 elad Exp $ */
/*-
* Copyright (c) 1994, 2000, 2005 The NetBSD Foundation, Inc.
@@ -64,7 +64,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(1, "$NetBSD: exec_elf32.c,v 1.118 2006/11/22 00:41:38 elad Exp $");
+__KERNEL_RCSID(1, "$NetBSD: exec_elf32.c,v 1.119 2006/11/22 02:02:51 elad Exp $");
/* If not included by exec_elf64.c, ELFSIZE won't be defined. */
#ifndef ELFSIZE
@@ -91,9 +91,9 @@ __KERNEL_RCSID(1, "$NetBSD: exec_elf32.c,v 1.118 2006/11/22 00:41:38 elad Exp $"
#include <machine/cpu.h>
#include <machine/reg.h>
-#if defined(PAX_MPROTECT)
+#if defined(PAX_MPROTECT) || defined(PAX_SEGVGUARD)
#include <sys/pax.h>
-#endif /* PAX_MPROTECT */
+#endif /* PAX_MPROTECT || PAX_SEGVGUARD */
extern const struct emul emul_netbsd;
@@ -690,11 +690,10 @@ exec_elf_makecmds(struct lwp *l, struct exec_package *epp)
case PT_INTERP:
/* Already did this one. */
case PT_DYNAMIC:
- break;
case PT_NOTE:
-#if defined(PAX_MPROTECT)
+#if defined(PAX_MPROTECT) || defined(PAX_SEGVGUARD)
pax_adjust(l, ph[i].p_flags);
-#endif /* PAX_MPROTECT */
+#endif /* PAX_MPROTECT || PAX_SEGVGUARD */
break;
case PT_PHDR: